零基础搭建Node.js、Express、Ejs、Mongodb服务器及应(3)

exports.index = function(req, res){
  res.render('index', { title: 'Express' });
};


我们来添加一个新页面。我比较喜欢给每一个一级目录创建一个独立的route文件,但是现在我们还不打算在views下面给helloworld建一个完整的目录结构,所以我们暂时先使用index路由。在这个文件的最后添加:

复制代码 代码如下:


exports.helloworld = function(req, res){
  res.render('helloworld', { title: 'Hello, World!' });
};


它会负责处理这个URI请求,但是现在我们还没有一个实际的页面让res.render去render,这是Ejs负责的工作。进入你的views目录,打开index.ejs,把它另存为helloworld.ejs文件。现在它看上去应该是这样的:

复制代码 代码如下:


<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link href='https://www.jb51.net/stylesheets/style.css' />
</head>
<body>
<h1><%= title %></h1>
<p>Welcome to <%= title %></p>
</body>
</html>


应该很容易理解。
保存文件。在命令行窗口中按ctrl+c中断app.js,然后输入node app.js重新启动它。提示:当你修改一个ejs模板文件的时候,你不需要重启服务器。但是当你改了一个js文件的时候,比如app.js或者一个路由js文件,就必须要重启服务器才能看到效果了。

服务器启动后,注服务器打开:3000/helloworld,应该能看到这个漂亮的界面了:

零基础搭建Node.js、Express、Ejs、Mongodb服务器及应

好了!现在我们有了路由可以处理我们的模板,看到了我们想要的效果。接下来我们来做一些Model(数据层)。

第3部分 – 创建数据库并读取数据

第1步 – 安装Mongodb

我们先关掉文本编辑器,回到命令行窗口。先用浏览器,打开,下载Mongo。点击主菜单里的下载链接,找到适合你的系统的版本。对于64位win8,下载64-bit *2008R2+版本。下载后是个zip文件,解压到c:\mongo或者c:\program files\mongo或者随便什么地方,这不重要。我们把数据保存在我们的nodetest1目录里。

第2步 – 运行Mongod和mongo

在我们的nodetest1目录里创建一个子目录data,然后在命令行窗口中进入你的mongodb目录的bin目录里,输入:

复制代码 代码如下:


mongod –dbpath c:\node\nodetest1\data


你会看到mongo服务器启动了,第一次启动需要一点时间,因为它需要预分配一些硬盘空间和一些其它的任务。当它提示”[initandlisten] waiting for connections on port 27017″的时候,就搞定了。没有什么别的需要做的了,服务器已经在运行了。现在你需要另外打开一个命令行窗口,进入mongo目录的bin目录中,输入

复制代码 代码如下:


mongo


你会看到一些类似这种提示:

复制代码 代码如下:


c:\mongo>mongo
MongoDB shell version: 2.4.5
connecting to: test


这时候如果你看一下mongod的窗口,你会看到提示一个连接已接入。我们接下来会使用这个命令行的客户端去手工处理一下我们的数据库,不过这对我们的Web站点并不是必须的。

第3步 – 创建一个数据库

不用担心上面的连接到test的提示。那只是当你没有指定数据库时mongo默认的一个数据库,它甚至不会创建这个名叫test的数据库,除非你增加一条记录进去。我们创建一个自己的数据库吧。在mongo的命令行窗口中,输入:

复制代码 代码如下:


use nodetest1


除非我们插入一些数据进去,否则它也不会创建这个数据库。

第4步 – 添加一些数据

我最喜欢的MongoDB的特性就是它使用JSON作为数据结构,这就意味着我对此非常的熟悉。如果你不熟悉JSON,先去读点相关资料吧,这超出了本教程的范围。

我们添加一些数据到collection中。在这个教程里,我们只有一个简单的数据库,留侯 username和email两个字段。我们的数据看起来是这个样子的:

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgxxyz.html