準備條件
- 一臺服務器
- SSL證書候学,小程序規(guī)定必須要https協(xié)議
服務器后臺
- Node.js
- express
- mongodb
- pm2
下面以騰訊云主機(centos)為例
安裝Node.js
yum install nodejs
也可以安裝nvm,用nvm管理nodejs版本
安裝git
yum install git
連接到遠程代碼庫
以github為例:
配置用戶信息
git config --global user.name youname
git config --global user.email youemail
生成ssh公鑰
ssh -keygen -t rsa -C youemail
默認生成目錄為 /root/.ssh
在目錄中找到id_rsa.pub
文件屿聋,復制里面的內(nèi)容,在自己的github上添加ssh
安裝mongodb和客戶端shell
yum install mongodb-server mongodb -y
創(chuàng)建數(shù)據(jù)庫文件存放目錄
mkdir -p /data/mongodb
mkdir -p /data/logs/mongodb
啟動mongodb數(shù)據(jù)庫服務
mongod --fork --dbpath /data/mongodb --logpath /data/logs/youlog.log
注意:
如果在啟動mongodb服務時在命令后面加上 --auth
即會開啟認證蜕猫。
建議開啟認證步藕,如果不開會很容易被黑。
--port 12345
可以改變數(shù)據(jù)庫的端口號垫桂,默認是27017。
--fork
是以守護進程的方式啟動數(shù)據(jù)庫服務粟按。
--dbpath /data/mongodb
指定數(shù)據(jù)庫文件存放的目錄诬滩。
--logpath /data/logs/youlog.log
指定日志文件目錄。
mongodb的配置文件默認在 /etc/mongod.conf
啟動客戶端shell
mongo //啟動mongodb客戶端shell 默認連接test數(shù)據(jù)庫
在shell里可以切換數(shù)據(jù)庫連接灭将,和進行相關操作疼鸟。
在云服務器以守護進程的方式啟動一次數(shù)據(jù)庫服務之后,關閉終端庙曙,服務也不會被終止空镜。所以下次不用再啟動數(shù)據(jù)庫服務,直接連接就可以捌朴。
關閉數(shù)據(jù)庫服務
mongod --shutdown (--dbpath /data/mongodb)
如果啟動時加了dbpath而且不是默認的/data/db 吴攒,則關閉數(shù)據(jù)庫服務時也應加上dbpath。
創(chuàng)建https服務
npm init //項目初始化
安裝express
npm install express --save
實現(xiàn)簡單的https服務器
const https = require('https');
const fs = require('fs');
const express = require('express');
const app = express();
let key = fs.readFileSync('youssl.key');
let cert = fs.readFileSync('youssl.crt');
let options = {
key : key,
cert : cert
};
const httpsServer = https.createServer(options,app);
httpsServer.listen(443, () => {
console.log('listening 443 port');
});
app.get('/',(req, res, next) => {
console.log('someone request');
});
.key
和.cert
文件為你的ssl認證文件砂蔽,以騰訊云主機為例洼怔,可以有免費1年的ssl證書。
使用mongoose操作數(shù)據(jù)庫
npm install mongoose --save
const mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1/dbname'); //連接數(shù)據(jù)庫
const connection = mongoose.connection;
connection.once('open', (err) => {
if(err){
console.log('Database connection failure');
}else{
console.log('Database opened');
}
});
const Schema = mongoose.Schema;
const YourSchema = new Schema({
name : String,
age : Number,
});
const yourModel = mongoose.model('yourtable', YourSchema); //在數(shù)據(jù)庫中對應的表為yourtables
let yourDoc = new yourModel({
name : 'yourname',
age : 18,
});
注意
如果啟動mongodb數(shù)據(jù)庫服務時加上了--auth 則使用mongoose連接數(shù)據(jù)庫時左驾,要加上認證的賬戶
mongoose.connect('mongodb://youraccount:pwd@127.0.0.1/dbname');
mongodb與關系型數(shù)據(jù)庫的對應關系
mongodb | 關系型數(shù)據(jù)庫(mysql) |
---|---|
集合(Collection) | 行 |
文檔(Document) | 表 |
字段 | 列 |
Schema相當于表的結(jié)構(gòu)镣隶,可以預定義文檔的字段類型,不能進行數(shù)據(jù)庫操作诡右。 Modle可以進行一系列數(shù)據(jù)庫操作安岂,相當于表。Model的實例就相當于表的一行帆吻。
使用pm2
安裝pm2
npm install -g pm2
啟動應用
pm2 start app.js