Javascript Node.js&;Express.js/Jade res.render返回res.render不是函数
到目前为止,我还没有找到这个错误的答案,我想知道这是否与Express的版本4有关 controller.jsJavascript Node.js&;Express.js/Jade res.render返回res.render不是函数,javascript,node.js,express,Javascript,Node.js,Express,到目前为止,我还没有找到这个错误的答案,我想知道这是否与Express的版本4有关 controller.js var request = require('request'); var apiOptions = { server : "http://localhost:3000" }; if(process.env.NODE_ENV === 'production') { apiOptions.server = "https://heroku_path"; } modu
var request = require('request');
var apiOptions = {
server : "http://localhost:3000"
};
if(process.env.NODE_ENV === 'production') {
apiOptions.server = "https://heroku_path";
}
module.exports.homelist = function(req, res) {
var requestOptions, path;
path = '/api/locations';
requestOptions = {
url: apiOptions.server + path,
method: "GET",
json: {},
qs : {
lng : -117.929835,
lat : 33.614675,
max : 30000
}
};
request(requestOptions, function(err, res, body) {
renderHomepage(req, res, body);
});
var renderHomepage = function(req, res, body) {
res.render('jade-template', {
title: 'I'm a main title',
pageHeader: {
title: 'I'm a title',
strapline: 'I'm a strapline'
},
locations: body,
sidebar: 'yadda yadda'
});
};
homelist函数从my routes.js调用,然后在这里通过requestOptions中的查询从我的请求调用API
但是,当启动请求回调并使用API变量体调用renderHomepage时,我会得到错误:
res.render('jade-template', {
^
TypeError: res.render is not a function
我所有的路线都设置好了,测试得很好。有人对此有解决方案吗?在
renderHomepage
函数中的res
参数(请求的回调)与快速路线的res
不同
将您的呼叫请求更改为类似以下内容:
request(requestOptions, function(err, serverRes, body) {
renderHomepage(req, res, body);
});
然后对
请求到/api/locations
的响应是serverRes
,而发送给客户端的响应是res
函数renderHomepage
中的res
参数(请求的回调)与快线的res
不一样
将您的呼叫请求更改为类似以下内容:
request(requestOptions, function(err, serverRes, body) {
renderHomepage(req, res, body);
});
然后对请求到/api/locations
的响应是serverRes
,而您发送给客户的响应是res
就是这样!谢谢,就是这样!非常感谢。