Nodejs+MongoDB搭建安卓应用服务器
服务器环境:Linux18.04
- 安装Nodejs
apt install nodejs
-
安装MongoDB
在这里我们需要从官网下载一个安装包 官网
我选择的是tgz后缀的压缩包,-
解压
tar -zxvf xx.tgz # 解压 mv xx/ /usr/local/mongodb #拷贝到指定目录
-
添加路径
export PATH=/usr/local/mongodb/bin:$PATH
-
创建数据库目录
/data/db是MongoDB的默认启动数据库路径mkdir -p /data/db
-
运行MongoDB服务
通过以下命令运行服务mongod
-
后台管理Shell运行
需要进入到MongoDB的安装目录然后运行cd /usr/local/mongodb/bin mongo
倘若我们的服务器是只有Shell界面的,按照以上办法运行了后台服务以后就不能启动MongoDB的Shell服务了,在这里我想到了操作系统的多进程的知识,初步的想法是将MongoDB后台服务运行在后台进程,然后再运行MongoDB的Shell,具体实现如下:
-
-
开启MongoDB后台服务
mongod --fork --logpath <1> --dbpath <2>
这里<1>代表MongoDB日志文件的位置,<2>表示数据的存储目录,在运行命令之前最好把这两个路径的文件先建好。
-
关闭MongoDB后台服务
mongo use admin db.shutdownServer()
先通过mongo命令进入mongod命令行,然后切换到管理员模式,最后关闭服务器。
关闭服务的第二种方式是指定数据存储目录mongod --shutdown --dbpath <数据存储目录>
-
运行服务器代码
let mongodb = require('mongodb'); let express = require('express'); let bodyParser = require('body-parser'); let app = express(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: true})); let MongoClient = mongodb.MongoClient; let url = "mongodb://localhost:27017"; MongoClient.connect(url, {useNewUrlParser: true}, function(err, client) { if(err) { console.log('error'); } else { app.post('/login', (require, response, next) =>{ let post_data = require.body; let username = post_data.username; let password = post_data.password; let db = client.db('local'); db.collection('phone').find({'username':username}).count(function(err, number) { if(number == 0) { response.json("user_not_exist"); } else { db.collection('phone').findOne({'usernam