gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 22:17:51 25 4
gpt4 key购买 nike

我想将附加数据从 app.js 传递到 Express-resource 路由,但我还没有弄清楚。你会怎么做?请注意,我使用的是express-resource

// app.js
var myAddOnData = 'abc';
app.resource('users', './routes/user');

// user.js
exports.index = function (req, res) {
console.log(myAddOnData);
};

谢谢

最佳答案

这是我能想到的三种方法。由于我对您的具体问题知之甚少,听起来中间件可能是解决问题的方法。

使用全局 app 变量

使用app.set创建一个值在 app.js 中,然后使用 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");

(也许看看 pot ?)

使用中间件

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

//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

关于node.js - Express-resource 将附加数据从 app.js 传递到路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18543075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com