零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门

2020-06-17 06:52:51易采站长站整理

在上面的这个文件的最后写上:

var app = express();
这一句至关重要。它实例化了Express并赋值给我们的app变量。接下来的内容都要使用这个变量来配置一堆Express的参数。继续输入:

// all environments
app.set(‘port’, process.env.PORT || 3000);
app.set(‘views’, path.join(__dirname, ‘views’));
app.set(‘view engine’, ‘ejs’);
app.use(express.favicon());
app.use(express.logger(‘dev’));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, ‘public’)));
这里设置了端口,寻找views的目录,用什么模板引擎来处理这些views,和一些其它的东西。还要注意最后一行,它告诉Express把public/目录下的静态文件作为顶层目录的文件来托管。比如你的图片目录存放在c:nodenodetest1publicimages里,但是实际访问地址是http://localhost:3000/images/。

注意:你需要把这一行

app.use(express.bodyParser());
改成

app.use(express.urlencoded());
这是为了忽略一些App运行过程中Node窗口里面的警告信息。主要是一些Express和它的插件未来可能的修改。如果你不做这个修改,程序运行时你会收到一堆某某函数即将过期的警告。

然后增加:

// development only
if (‘development’ == app.get(‘env’)) {
  app.use(express.errorHandler());
}
这样在开发过程中你可以做一些错误检查。

继续增加:

app.get(‘/’, routes.index);
app.get(‘/users’, user.list);
这会告诉路由当一个URI请求到达时使用哪个Route来处理。注意user变量是在前面定义的,并被map到了/routes/user.js,我们会调用这个文件中定义的list函数。这里可以显示用户列表。

继续增加:

http.createServer(app).listen(app.get(‘port’), function(){
  console.log(‘Express server listening on port ‘ + app.get(‘port’));
});
最后,创建一个http server并且启动它。这样就差不多了。

(以上内容在新的express生成的模板里是完整的,不需要自己写进去)

现在,我们写点有用的。我们不会直接在我们的index页面里写“Hello World!”,我们借这个机会学习一下如何使用route路由,同时学习一下Ejs引擎是如何工作的。在上面的app.js文件的app.get()这一段的后面添加一行:

app.get(‘/helloworld’, routes.helloworld);
如果这时候你在命令行窗口按ctrl+C结束app.js进程再重启,然后用浏览器访问http://localhost:3000/helloworld,你会得到一个很激动人心的node错误和命令行窗口中的一堆崩溃提示。这是因为我们还没有修改路由去处理这个路径。来做这个吧。在你的编辑器里,进入routes目录,找到index.js,打开它。它看上去应该是这样的: