Express-resource将附加数据从app.js传递给路由

我想从app.js传递额外的数据到express资源路由,我还没有想出来。 你会怎么做? 请注意,我正在使用快递资源

// app.js var myAddOnData = 'abc'; app.resource('users', './routes/user'); // user.js exports.index = function (req, res) { console.log(myAddOnData); }; 

谢谢

这是我能想到的三种方法。 没有我对你的具体问题的了解,听起来中间件可能是这样做的。

与全球appvariables

app.js使用app.set创build一个值,然后使用app.get中的user.js进行检索。

使用模块

将信息存储在隔离的模块中,然后根据require() 。 如果这是跨多个实例运行的,那么显然要将值存储到磁盘而不是内存中。

 // keystore.js // ----------- module.exports.set = function(id, val) { /* ... */ }; module.exports.get = function(id) { /* ... */ }; // app.js // ----------- var ks = require('./keystore'); ks.set = function("userInfo", "abc"); module.exports.get = function(id) { /* ... */ }; // user.js // ----------- var ks = require('./keystore'); ks.get = function("userInfo", "abc"); 

(也许看看锅 ?)

使用中间件

使用自定义中间件将数据附加到请求对象,然后可以在路由处理程序中稍后访问它。

 //app.js //------ var express = require('express') , cookieSessions = require('./cookie-sessions'); var app = express(); app.use(express.cookieParser('manny is cool')); app.use(cookieSessions('sid')); // ... //cookie-sessions.js //------------------ module.exports = function(name) { return function(req, res, next) { req.session = req.signedCookies[name] || {}; res.on('header', function(){ res.signedCookie(name, req.session, { signed: true }); }); next(); } } 

通过https://gist.github.com/visionmedia/1491756

Interesting Posts