express使用Node.js、MongoDB和Express快速构建Web应用

Express是Node.js上常用的Web应用程序框架,使用Express可以快速搭建Web应用,特别是针对RESTful API的应用程序。本文将介绍如何使用Node.js、MongoDB和Express快速构建Web应用。

1. 安装Node.js和MongoDB

在开始之前,您需要安装Node.js和MongoDB。Node.js官网提供了针对各种操作系统的安装包,可以在https://nodejs.org/en/download/下载。MongoDB官网也提供了针对各种操作系统的安装包,可以在https://www.mongodb.com/download-center/community下载。

安装完Node.js和MongoDB后,您可以使用以下命令检查它们是否安装成功:

node -v

mongo --version

如果您看到了类似于v10.16.0和v4.0.10的输出,那么说明Node.js和MongoDB已经成功安装。

2. 初始化Express应用程序

使用命令行,进入您想要存放代码的目录。使用以下命令初始化一个新的Express应用程序:

npm init

然后按照提示操作,以生成一个package.json文件。接下来,使用以下命令安装Express和其他依赖项:

npm install express --save

npm install body-parser --save

npm install mongoose --save

其中,body-parser是一个Express中间件,用于解析请求体。mongoose是一个Node.js模块,用于在MongoDB中进行对象文档映射(ODM)操作,它提供的API与MongoDB的API相似,让我们更方便地操作MongoDB。

3. 配置Express应用程序

打开你的编辑器,创建一个名为app.js的文件。先引入Express和body-parser:

const express = require('express');

const bodyParser = require('body-parser');

然后创建一个Express应用程序:

const app = express();

使用body-parser中间件,解析请求体的格式为JSON:

app.use(bodyParser.json());

将MongoDB连接到Node.js程序:

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/myapp', {

useNewUrlParser: true,

useUnifiedTopology: true

}).then(() => console.log('MongoDB Connected'))

.catch(err => console.log(err));

在连接字符串中,myapp是要连接到的MongoDB数据库的名称。useNewUrlParser选项用于指示MongoDB驱动程序在解析MongoDB连接字符串时使用新URI解析器。useUnifiedTopology选项用于指示驱动程序应使用新的服务器发现和监视引擎。

4. 创建数据模型

创建一个名为book.js的文件。使用mongoose模块来定义一个book数据模型:

const mongoose = require('mongoose');

const bookSchema = new mongoose.Schema({

title: { type: String },

author: { type: String },

});

module.exports = mongoose.model('Book', bookSchema);

在上面的代码中,我们只定义了一个基本的book数据模型,它有两个字段:title和author。

5. 创建控制器

创建一个名为books.js的文件,作为book数据模型的控制器。在其中定义GET、POST、PUT和DELETE路由:

const express = require('express');

const router = express.Router();

const Book = require('../models/book');

router.get('/', function(req, res) {

Book.find({}, function(err, books) {

if (err) {

res.send(err);

} else {

res.json(books);

}

});

});

router.post('/', function(req, res) {

var book = new Book(req.body);

book.save(function(err) {

if (err) {

res.send(err);

} else {

res.send({ message: 'Book added' });

}

});

});

router.put('/:id', function(req, res) {

Book.findByIdAndUpdate(req.params.id, req.body, function(err, book) {

if (err) {

res.send(err);

} else {

res.send({ message: 'Book updated' });

}

});

});

router.delete('/:id', function(req, res) {

Book.findByIdAndRemove(req.params.id, function(err) {

if (err) {

res.send(err);

} else {

res.send({ message: 'Book deleted' });

}

});

});

module.exports = router;

在上面的代码中,我们定义了四个路由,分别为GET、POST、PUT和DELETE路由。

6. 在Express应用程序中使用控制器

将books控制器导入到app.js中:

const books = require('./controllers/books');

app.use('/books', books);

在上面的代码中,我们将books控制器作为一个中间件使用,其路由将位于'/books'路径下。

7. 测试

使用以下命令启动Node.js应用程序:

node app.js

使用Postman或类似的API测试工具,测试我们的API是否正确工作。使用GET路由,获取所有图书:

GET http://localhost:3000/books

使用POST路由,添加一本新书:

POST http://localhost:3000/books

Content-Type: application/json

{

"title": "My Book",

"author": "Me"

}

使用PUT路由,更新一本书:

PUT http://localhost:3000/books/5d1aa99ddf051c31640ccd45

Content-Type: application/json

{

"title": "My Updated Book",

"author": "Me"

}

使用DELETE路由,删除一本书:

DELETE http://localhost:3000/books/5d1aa99ddf051c31640ccd45

总结

在本文中,我们介绍了如何使用Node.js、MongoDB和Express快速构建Web应用。我们安装了Node.js和MongoDB,并初始化了一个新的Express应用程序。我们使用了mongoose模块来创建数据模型,并使用body-parser中间件解析请求体的格式为JSON。我们创建了一个控制器,定义了四个路由。最后,我们将控制器作为一个中间件使用,并使用Postman测试了我们的API是否正确工作。

数据库标签