Express下大概无难点,但是有几个小点需要记一下,算是技巧:
1. 结局跨域等的问题,需要在主文件一进来做如下策略,网络上很容易找到,这里就不贴具体出处了:
app.all('*', function (req, res, next) {
res.header("Access-Control-Allow-Origin", "http://localhost:4200"); // 允许所有就写*
res.header('Access-Control-Allow-Credentials',true); // 这句解决跨域引起session丢失,客户端也要做策略
res.header('Access-Control-Allow-Methods', 'GET'); // 允许的请求方法
res.header('Access-Control-Allow-Methods', 'POST');
res.header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type"); // 允许的头字段
next();
});
2. 路由分级策略
**在app.js中**
require('./routes/routemgr')(app);
**在routemgr.js中**
var express = require('express');
var router = express.Router();
module.exports = function(app){
app.get('/', function(req, res, next){
res.json("root");
});
app.use('/login', require('./login'));
app.use('/others', require('./others'));
};
**然后在每个相应的文件中**
var express = require('express');
var router = express.Router();
router.get('/', function (req, res, next) {
res.json("login root");
});
3. 静态配置文件需要这么写
module.exports = {
mysql: {
host: '127.0.0.1',
port: 3306,
user: 'root',
password: 'root',
database: 'db_test',
charset: 'utf8'
},
session: function(MongoStore){
return {
resave:false,//添加这行,重新保存:强制会话保存即使是未修改的;
saveUninitialized: true,//添加这行 ,强制“未初始化的”会话保存到存储
key: "session~",//cookie name
cookie: {
path: '/',
httpOnly: true,
secure: false, // TODO: Set to true when HTTPS was used.
maxAge: 1000 * 60 * 60 * 24 * 30
},
secret: "qwerasdf",
store: new MongoStore({
db: "db_session"
})
}
}
};