我正在开发一个 NodeJS Express 应用程序,据我所知,服务器-客户端通信的工作方式是将 AJAX 脚本放入 Javascript 文件(即客户端)并放置一个监听器函数( function (req, res){}
基本上 ) 到另一个。 (那是服务器端)
如果错了请告诉我。否则,我有一个关于它的问题:在客户端有一个 Jade 文件,其中包含上述 AJAX 脚本,并附有 script include
。为了让这个网站在非常基础的层面上工作,我在 /routes 文件夹中制作了下一个脚本(并且必须在 app.js 中定义一些变量)
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
res.render('name-of-the-Jade-file', { title: 'Site title' });
});
module.exports = router;
我是否也必须为监听器功能制作一个类似的脚本到同一个文件夹?
最佳答案
在 WWW 的上下文中,服务器-客户端通信通过发出 HTTP 请求和接收 HTTP 响应来工作。 (至少除非您想开始使用 Web Sockets 之类的东西)。
Ajax 是“发出 HTTP 请求并使用客户端 JavaScript 处理其响应”的名称。您还可以使用纯 HTML 链接或表单提交从网页与服务器通信。
路由只是服务器上使用的一种常见设计模式,用于检查客户端请求的 URL 并运行适当的代码来响应它。 Express 使用它们。
如果您想使用 Ajax,那么您需要在客户端使用 XMLHttpRequest(或 JSONP 或 iframe hacks)来向服务器发出 HTTP 请求。
然后你需要写一些代码来响应它。 render
是 Express 用来获取一些数据、对其进行格式化,然后将其作为响应发送回客户端的方法。 Express 可能提供了其他方法来达到相同的目的,但您通常需要使用 render
。
关于javascript - 服务器端脚本是否需要在 "routes"中定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35205298/