我有一个Node.js应用程序,除了其他功能之外,它通过向该页面发送一些HTML来响应来自网页的AJAX
(jQuery
)$.get()
请求。该应用程序使用Express。
所以在服务器代码中,我有:
app.get('/friends', api.friends);
,其中api
定义为api = require('./static/routes/api')
,我正在设置app.use(app.router);
。
在我的api.js
模块中,我有api.friends
代码:我有
exports.friends = function(request, response)
{
...lots of code...
};
其中我创建了一些特定的HTML。
现在,我的问题是:如何将此HTML实际发送回客户端?我无法使用传入的response
对象,因为它不再是Express类型response
对象,因此通常使用reponse.send()
,.end()
等方法不存在。
我不知道该怎么做,反映出对Node及其内部缺乏了解(这是我的第一个Node应用程序),所以任何和所有帮助都将受到高度赞赏和欢迎。谢谢。
答案 0 :(得分:1)
正如@Daniel在评论中所述,response
对象肯定是一个Express对象,您只需通过rendering视图返回HTML,如下所示:
exports.friends = function(request, response) {
//do stuff
response.render('friends.html');
};
当然,你必须在你的app.js设置中定义你的观点,如下所示:
app.set('views', __dirname + '/views')
答案 1 :(得分:0)
唉!我是个白痴!在我的exports.friends
处理程序中,有一个request
出现,作为其调用参数的一部分,它采用function(error, response, body)
形式的函数。请注意响应参数。我在这个函数中发送了结果,当然使用了这个response
对象而不是通过exports.friends(request, response)
的对象。卫生署。好吧 - 反正谢谢你 - 你让我再次查看代码,并且知道response
对象是合法的,我能够看到错误。再次感谢你 - 赞赏!