路由的使用使得层次更加分明,利于维护
如果接收ajax请求的处理全写在index.js页是不是有些多呢?那么试着用下路由.
1.(index.js)
var express = require('express');
var app = express();
let bodyParser=require('body-parser');//post格式解析插件
app.use(bodyParser.urlencoded({extended:false}))
app.use(bodyParser.json());//可以接收json格式数据
app.use('/static',express.static('./static'));//设置静态资源路径
let db=require("./connect.js");//链接并打开data数据库
let h=require("./rooth.js");
app.use("/h",h);
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
这一页是不是少了很多,只要加上路由就可以,但是注意发起的ajax 的url的写法
以前直接url为http://127.0.0.1:3000就可以访问app.post('/', function (req, res) {}
但是现在url为http://127.0.0.1:3000/h才可以访问
let h=require("./rooth.js")
app.use("/h",h);内部的router.post('/', function (req, res) {}
2.(rooth.js)
let server=require('express');
let router=server.Router();
let us=require("./data-user.js");//数据库的其中一个表
router.use(function(req, res, next) {
//在这可以写一些路由的拦截,如果没有next(),则数据处理只执行到这,后面的router.post等都不会执行
next();
});
router.post('/', function (req, res) {
//前端传来的数据都存在于req.body中
us.find({"us":"hello"},function(err,doc){
if (err) {
console.log("错误")
}
if (doc.length!=0) {
console.log(doc);
}
else{
var arr = [{ us: 'Star Wars' }, {us: 'hello' }];
us.insertMany(arr, function(error, docs) {
if (error) {
console.log("error")
}
else{console.log("数据添加成功")}
});
}
})
});
//注意导出一定要有
module.exports=router;