0

我有一个 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 应用程序),因此我们将不胜感激和欢迎任何和所有帮助。谢谢你。

4

2 回答 2

1

正如@Daniel 在他的评论中所说,该response对象肯定是一个 Express 对象,您可以通过渲染视图来返回您的 HTML,如下所示:

exports.friends = function(request, response) {
   //do stuff
   response.render('friends.html');
 };

当然,您必须在 app.js 设置中定义视图,如下所示:

app.set('views', __dirname + '/views')
于 2013-06-11T10:53:11.653 回答
0

啊! 我真是个白痴!在我的exports.friends处理程序中,有一个requestout ,作为其调用参数的一部分,它采用 form 的函数function(error, response, body)。注意响应参数。我在这个函数中发送结果,它当然使用了这个response对象,而不是通过exports.friends(request, response). 多哈。哦,好吧 - 无论如何谢谢 - 你让我再次查看代码,并且知道该response对象是合法的,我能够看到错误。再次感谢您-感谢!

于 2013-06-11T12:25:06.367 回答