模块分离,创建启动服务的方法,并判断用户发出的请求
程序员文章站
2022-09-26 23:24:54
模块分离1 index.js 启动服务var serve=require("./serve");//导入服务的模块---创建serve模块//默认的请求 eg:localhost:8081//用户的请求可能访问index、login eg:local:8081/index//创建一个空对象,里面添加用户可能的请求var api=require("./api");var handle={};handle["/index"]=api.index;//向对象中添加用户可能发出的请求hand...
模块分离
1 index.js 启动服务
var serve=require("./serve");//导入服务的模块---创建serve模块
//默认的请求 eg:localhost:8081
//用户的请求可能访问index、login eg:local:8081/index
//创建一个空对象,里面添加用户可能的请求
var api=require("./api");
var handle={};
handle["/index"]=api.index;//向对象中添加用户可能发出的请求
handle["/login"]=api.login;
handle["/register"]=api.register;
//console.log(handle);
// {
// '/index': [Function: index],
// '/login': [Function: login],
// '/register': [Function: register]
// }
serve.start(handle);//通过start方法启动服务
2 serve.js 创建服务
var http=require("http");
var url=require("url");
var rout=require("./route");
//创建启动服务的方法
function start(handle){
//把创建服务的回调函数分离出来
// handle参数是启动模块传递过来的接口的集合
function creat(req,res){
//res.end("hello world");
//console.log(handle)
//console.log(pathname)
var pathname=url.parse(req.url).pathname;//地址栏中域名后面的内容
res.writeHead(200,{"Content-type":"text/html;charset=utf-8"})
// 将handle对象和pathname全部传递给路由文件 从中可以看到handle[pathname]
var cont=rout.router(handle,pathname);//handle 就是对象(存放接口),pathname是用户发出的请求,eg:域名/index
res.write(cont);
}
// 当start函数被调用的时候 启动node服务
http.createServer(creat).listen(3000,function(){
console.log("服务启动了")
})
}
module.exports={
start
}
3 api.js 处理用户的请求
//处理接口 可以用来存放后台接口
//单独封装一个模块处理客户端请求
function index(){
return "您进入了主页面"
}
function login(){//比如该函数用来出来用户发出的 /login的请求
return "您登录成功了"
}
function register(){
return "注册成功"
}
module.exports={
index,
login,
register
}
4 route.js 路由 如果访问不了就返回404(处理错误),访问成功,执行对应的方法
function router(hand,pathname){
console.log(hand);//对象
// {
// '/index': [Function: index],
// '/login': [Function: login],
// '/register': [Function: register]
// }
// 接收到hand对象和请求地址中的pathname的值 handle[pathname]
if(typeof hand[pathname]=="function"){
return hand[pathname]();//判断对象的key,是不是一个方法,是就返回执行对应的方法
}else{
return "404";
}
}
module.exports={
router
}
本文地址:https://blog.csdn.net/W8034/article/details/107520102
上一篇: 人参果怎么种植,需要注意什么?
下一篇: Filecoin爆雷隐患,你都知道吗?