尝试在app中使用可以在操作中调用的函数。
放入app.locals不起作用:
app.locals({
"form_tag" : helpers.form_tag,
"text_field_tag":helpers.text_field_tag,
sendHttpGs: function(req,res) {
var querystring = require('querystring');
var data = querystring.stringify({
idSong: req.params.idSong
});
var data = querystring.stringify({
track: req.body.track
});
var options = {
host: 'localhost',
port: 8888,
path: '/exo/playlists/searchIndex.php',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': Buffer.byteLength(data)
}
};
var reqSong = http.request(options, function(ret){
ret.setEncoding('utf8');
ret.on('data', function(chunk){
req.session.search.push(JSON.stringify(chunk));
res.render('search.ejs', {
tracks: chunk,
title: req.session.search
});
});
});
reqSong.write(data);
reqSong.end();
}
});
这部分用于将http帖子发送到获取登录和搜索功能的php文件。
我应该把它放在哪里以便像
一样使用它.post('/loggedin', function(req,res){
global.sendHttpGS(req,res);
})
答案 0 :(得分:2)
您可以通过app.set()将一个函数附加到app对象,例如初始化代码中的这样的内容:
app.set('sayHello', function(res) {
return "hello";
});
然后在您的路线中,该功能将通过req.app.settings提供:
req.app.settings.sayHello(res);