如何在Node.js中响应来自客户端的GET请求(发送一些HTML作为响应)?

时间:2013-06-11 07:40:53

标签: ajax node.js get express

我有一个Node.js应用程序,除了其他功能之外,它通过向该页面发送一些HTML来响应来自网页的AJAXjQuery$.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应用程序),所以任何和所有帮助都将受到高度赞赏和欢迎。谢谢。

2 个答案:

答案 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对象是合法的,我能够看到错误。再次感谢你 - 赞赏!