视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2020-11-27 22:00:21 责编:小采
文档


光在服务器开了端口还不行,还要在阿里云服务器控制台的安全组中添加这个端口:

三、在node项目中利用npm安装mongodb:

npm i mongodb --save

四、链接的具体代码(前提是已经建立了简单的http或者https服务),具体代码:

const http = require('http')
 , https = require('https');
const express = require('express');
const bodyParser = require('body-parser')
const app = express();
const fs = require('fs');
const ejs = require('ejs');
const path = require('path');
const MongoClient = require('mongodb').MongoClient;
// 返回信息
const questions = {
 code: 200,
 msg: 'success',
};
// https证书,开https服务的自验证证书
const options = {
 key: fs.readFileSync('./privatekey.pem'),
 cert: fs.readFileSync('./certificate.pem')
};
let xltitle = '标题(初始化数据)',
 xlcontent = '内容(初始化数据)',
 xlfaceid = '1(初始化数据)';
const url = 'mongodb://127.0.0.1/xlbase';
// 默认端口27017,无需填写
// 也可以修改端口,vim /etc/mongodb.conf
// 初始化数据库
MongoClient.connect(url, function (err, db) {
 if (err) throw err;
 let database = db.db('xlbase');
 console.log('------------数据库初始化成功------------');
// 如果没有face这个集合,会创建一个,所以可以用这个来初始化集合
 database.createCollection('face', function (err, res) {
 if (err) throw err;
 console.log('------------集合初始化完毕------------');
 db.close();
 });
});
//设置跨域访问
app.all('*', function (req, res, next) {
 res.header("Access-Control-Allow-Origin", "*");
 res.header("Access-Control-Allow-Headers", "X-Requested-With");
 res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
 res.header("X-Powered-By", ' 3.2.1');
 // res.header("Content-Type", "application/json;charset=utf-8");
 next();
});
// parse application/x-www-form-urlencoded 解析
app.use(bodyParser.urlencoded({extended: false}));
// parse application/json 解析
app.use(bodyParser.json());
// view engine setup,视图模版
app.set('views', path.join(__dirname, './'));
app.set('view engine', 'jade');
// 静态资源解析路径(css,js,图片等)
app.use(express.static(path.join(__dirname, './static')));
// 数据接收接口
app.post('/info', function (req, res) {
 res.header("Content-Type", "application/json;charset=utf-8");
 res.status(200);
 xltitle = req.body.title;
 xlcontent = req.body.content;
 xlfaceid = req.body.faceId;
 let info = {
 'faceid': xlfaceid,
 'title': xltitle,
 'content': xlcontent
 };
 let faceid = {
 'faceid': xlfaceid
 };
 let updateInfo = {$set: info};// 组装更新的信息
 MongoClient.connect(url, function (err, db) {
 let database = db.db('xlbase');
 database.collection('face').find(faceid).toArray(function (err, result) {
 if (err) throw err;
 // 判断集合中faceid和当前传过来的faceid是否相同和存在
 // 如果不存在就新插入这条数据
 // 如果存在且相同,就更新数据
 if (result.length !== 0 && result[0].faceid === xlfaceid) {
 database.collection("face").updateOne(faceid, updateInfo, function (err, res) {
 if (err) throw err;
 console.log("------------数据更新成功------------");
 db.close();
 });
 } else {
 database.collection('face').insertOne(info, function (err, res) {
 if (err) throw err;
 console.log("------------数据添加成功------------");
 db.close();
 })
 }
 })
 });
 res.json(questions); // 返回信息
 res.end(JSON.stringify(req.body, null, 2))
});
app.get('/index', function (req, res) {
 res.status(200);
 res.header("Content-Type", "text/html;charset=utf-8");
// 根据faceId查询数据
 MongoClient.connect(url, function (err, db) {
 if (err) throw err;
 let dbo = db.db("xlbase");
 let face = {"faceid": xlfaceid}; // 查询条件
 let xltitle1 = 404;
 let xlcontent1 = '网页出错!';
 dbo.collection("face").find(face).toArray(function (err, result) {
 if (err) throw err;
 console.log(result);
 xltitle1 = result[0].title;
 xlcontent1 = result[0].content;
 db.close();
 console.log('------------查询完毕------------');
 res.send('<h3 style="font-size: 35px">' + xltitle1 + '</h3>' +
 '<pre style="white-space: pre-wrap;word-wrap: break-word;font-size: 30px">' + xlcontent1 + '</pre>');
 res.end();
 });
 });
})
// 配置服务端口
// http.createServer(app).listen(3001, function () {
// console.log('3001')
// });
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; // 绕过证书验证
https.createServer(options, app).listen(8009, function () {
 console.log('port: 8009');
});
// var server = app.listen(3001, function () {
//
// var host = server.address().address;
//
// var port = server.address().port;
//
// console.log('Example app listening at http://%s:%s', host, port);
// })

希望本文所述对大家nodejs程序设计有所帮助。

下载本文
显示全文
专题