node.js连接mongoDB数据库快速搭建自己的web服务,其步骤具体如下:
步骤一:安装node.js和mongoDB
首先,需要安装node.js和mongoDB。可以从官网下载对应的安装程序,网址分别是:https://nodejs.org/ 和 https://www.mongodb.com/。
步骤二:安装依赖模块
在node.js中,可以使用npm命令来安装需要的依赖模块。使用下面的命令来安装mongodb模块和express模块:
npm install mongodb
npm install express
步骤三:连接mongoDB数据库
接下来,在node.js中连接mongoDB数据库。可以使用mongoose模块来连接数据库。
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test', {
useNewUrlParser: true,
useUnifiedTopology: true
});
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
console.log("MongoDB database connection established successfully!");
});
在上面的代码中,我们使用mongoose.connect()方法来连接本地的test数据库。其中,第二个参数设置了MongoDB的新连接设置。
步骤四:创建Schema和Model
在node.js中,可以使用mongoose.Schema()方法创建一个Schema。这个Schema相当于是一个数据库的模板,用来定义数据库中的数据结构和类型。下面是一个简单的Schema示例:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const userSchema = new Schema({
name: String,
age: Number,
email: String
});
const User = mongoose.model('User', userSchema);
module.exports = User;
在上面的代码中,我们定义了一个名为User的模型,模型的数据结构由三个字段组成:name、age和email。最后,我们返回了这个模型对象,以便在项目中其他部分使用。
步骤五:编写API接口
在node.js中,可以使用express来编写API接口。下面是一个简单的API接口示例:
const express = require('express');
const router = express.Router();
const User = require('../models/user');
router.get('/users', function(req, res) {
User.find(function(err, users) {
if (err) {
console.log(err);
} else {
res.json(users);
}
});
});
router.post('/users', function(req, res) {
let user = new User(req.body);
user.save()
.then(user => {
res.status(200).json({'user': 'added successfully'});
})
.catch(err => {
res.status(400).send('adding new user failed');
});
});
module.exports = router;
在上面的代码中,我们定义了两个API接口:一个是获取所有用户信息的接口,一个是添加新用户信息的接口。在这两个接口中,我们分别使用了User.find()方法和User.save()方法来读取和写入MongoDB中的数据。在成功读取或写入数据后,我们使用res.json()方法或res.status()方法来向前端返回数据。
示例一:使用Express.js连接MongoDB和搭建Web服务
下面是一个使用Express.js连接MongoDB并搭建Web服务的示例:
const express = require('express');
const mongoose = require('mongoose');
const app = express();
// connect to mongodb
mongoose.connect('mongodb://localhost/test', {
useNewUrlParser: true,
useUnifiedTopology: true
});
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
console.log("MongoDB database connection established successfully!");
});
// define Schema and Model
const userSchema = new mongoose.Schema({
name: String,
email: String
});
const User = mongoose.model('User', userSchema);
// define API routes
app.get('/api/users', function(req, res) {
User.find(function(err, users) {
if (err) {
console.log(err);
} else {
res.json(users);
}
});
});
app.post('/api/users', function(req, res) {
let user = new User(req.body);
user.save()
.then(user => {
res.status(200).json({'user': 'added successfully'});
})
.catch(err => {
res.status(400).send('adding new user failed');
});
});
// start server
app.listen(3000, function() {
console.log("Server running on port 3000...");
});
在上面的代码中,我们首先使用mongoose.connect()方法连接本地的test数据库,然后定义了一个名为User的模型。接下来,我们定义了两个API接口以供前端调用。最后,我们使用app.listen()方法启动了Web服务。
示例二:使用Koa.js连接MongoDB和搭建Web服务
下面是一个使用Koa.js连接MongoDB并搭建Web服务的示例:
const Koa = require('koa');
const Router = require('@koa/router');
const mongoose = require('mongoose');
const app = new Koa();
const router = new Router();
// connect to mongodb
mongoose.connect('mongodb://localhost/test', {
useNewUrlParser: true,
useUnifiedTopology: true
});
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
console.log("MongoDB database connection established successfully!");
});
// define Schema and Model
const userSchema = new mongoose.Schema({
name: String,
email: String
});
const User = mongoose.model('User', userSchema);
// define API routes
router.get('/api/users', async (ctx, next) => {
const users = await User.find();
ctx.body = users;
});
router.post('/api/users', async (ctx, next) => {
const user = new User(ctx.request.body);
await user.save();
ctx.body = { message: 'User added successfully' };
});
// use router
app.use(router.routes());
// start server
app.listen(3000, function() {
console.log("Server running on port 3000...");
});
在上面的代码中,我们首先使用mongoose.connect()方法连接本地的test数据库,然后定义了一个名为User的模型。接下来,我们定义了两个API接口以供前端调用。使用async/await关键字和Koa.js的中间件机制,我们分别在router.get()和router.post()方法中读取和写入MongoDB中的数据。最后,我们使用app.listen()方法启动了Web服务。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node.js连接mongoDB数据库 快速搭建自己的web服务 - Python技术站