/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;
从代码注释可以看出,这里就是负责返回前面提到的 Express 欢迎页面的逻辑代码,当然它使用到了模板引擎的知识,我们不具体介绍,直接简单粗暴地实现我们的需求吧。
首先我们把 index.html 页面保存到文件目录下的 public/html 文件夹下(没有就自己创建),然后我们在 routes/index 文件中返回这个 html 页面,在这里我们将使用到文件读写方法。
var path = require('path');
res.sendFile(path.resolve('public/html/index.html'));path 变量是 Express 中的变量,
path.resolve 方法可以将传入的相对地址转换为绝对地址,这里面涉及到关于 NodeJs 文件路径的知识,不做具体介绍。res 变量代表着服务器对于此次请求的返回对象,那么在这里相当于我们向客户端返回的是存放在 public/html/index.html 文件。
重启程序,访问 localhost,就可以看到 index.html 了。
6. 设置静态文件路径
对于 JS 和 CSS 这样的静态文件,在 Express 中都统一放置在 public 文件夹下,Express 遇到对静态文件的请求将会从 pulic 下读取并返回相应文件。
而设置这一路径的语句其实也在 app.js 中
app.use(express.static(path.join(__dirname, 'public')));因此如果项目需要,也可以自行修改这一路经。
7. 后台运行服务器
在之前我们终端运行
npm start 的时候,应该可以看到所有访问打印的日志语句都在终端显示了,这时如果我们关闭终端,程序也将相应停止,那么如何在后台运行我们的服务器程序,并将打印的日志语句都写入到专门的日志文件呢,这里需要用到 Linux 的 nohup 命令和重定向符。
npm start 1> log 2> error> 是linux下的重定向符。> 将会重新写入目标文件,即不保存目标文件的原始内容,如果使用 >> 则会在目标文件后面附加内容。
在 Linux 中,一个程序可以在几个编号的文件流中的任一个上产生输出。然而我们必须把这些文件流的前三个看作标准输入,输出和错误,shell 内部参考它们为文件描述符 0,1 和 2。因此这个语句的意思就是将标准输出重定向到当前目录下的 log 文件中,将错误输出重定向到当前目录下的 error 文件中。
但是这样只解决了输出信息的转移输出问题,程序依然是在终端下运行的。可以使用 Linux 下的 nohup 命令实现这一目的,使用如下









