最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js搭建小程序后臺(tái)服務(wù)

 更新時(shí)間:2018年01月03日 08:36:28   作者:Wenke  
最近在做微信的應(yīng)用號(hào)小程序開發(fā),小程序的后臺(tái)數(shù)據(jù)接口需要https安全請(qǐng)求,所以需要我的nodejs服務(wù)器能夠提供https的支持,現(xiàn)在就將整個(gè)https服務(wù)器的搭建過(guò)程說(shuō)一下

準(zhǔn)備條件

一臺(tái)服務(wù)器

SSL證書,小程序規(guī)定必須要https協(xié)議

服務(wù)器后臺(tái)

Node.js
express
mongodb
pm2

下面以騰訊云主機(jī)(centos)為例

安裝Node.js

yum install nodejs

也可以安裝nvm,用nvm管理nodejs版本

安裝git

yum install git

連接到遠(yuǎn)程代碼庫(kù)

以github為例:

配置用戶信息

git config --global user.name youname
git config --global user.email youemail

生成ssh公鑰

ssh -keygen -t rsa -C youemail

默認(rèn)生成目錄為 /root/.ssh
在目錄中找到id_rsa.pub文件,復(fù)制里面的內(nèi)容,在自己的github上添加ssh

安裝mongodb和客戶端shell

yum install mongodb-server mongodb -y

創(chuàng)建數(shù)據(jù)庫(kù)文件存放目錄

mkdir -p /data/mongodb
mkdir -p /data/logs/mongodb

啟動(dòng)mongodb數(shù)據(jù)庫(kù)服務(wù)

mongod --fork --dbpath /data/mongodb --logpath /data/logs/youlog.log

注意:
如果在啟動(dòng)mongodb服務(wù)時(shí)在命令后面加上 --auth即會(huì)開啟認(rèn)證。
建議開啟認(rèn)證,如果不開會(huì)很容易被黑。

--port 12345可以改變數(shù)據(jù)庫(kù)的端口號(hào),默認(rèn)是27017。

--fork是以守護(hù)進(jìn)程的方式啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)。

--dbpath /data/mongodb 指定數(shù)據(jù)庫(kù)文件存放的目錄。

--logpath /data/logs/youlog.log 指定日志文件目錄。

mongodb的配置文件默認(rèn)在 /etc/mongod.conf

啟動(dòng)客戶端shell

mongo  //啟動(dòng)mongodb客戶端shell 默認(rèn)連接test數(shù)據(jù)庫(kù)

在shell里可以切換數(shù)據(jù)庫(kù)連接,和進(jìn)行相關(guān)操作。

在云服務(wù)器以守護(hù)進(jìn)程的方式啟動(dòng)一次數(shù)據(jù)庫(kù)服務(wù)之后,關(guān)閉終端,服務(wù)也不會(huì)被終止。所以下次不用再啟動(dòng)數(shù)據(jù)庫(kù)服務(wù),直接連接就可以。

關(guān)閉數(shù)據(jù)庫(kù)服務(wù)

mongod --shutdown (--dbpath /data/mongodb)

如果啟動(dòng)時(shí)加了dbpath而且不是默認(rèn)的/data/db ,則關(guān)閉數(shù)據(jù)庫(kù)服務(wù)時(shí)也應(yīng)加上dbpath。

創(chuàng)建https服務(wù)

npm init  //項(xiàng)目初始化

安裝express

npm install express --save

實(shí)現(xiàn)簡(jiǎn)單的https服務(wù)器

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認(rèn)證文件,以騰訊云主機(jī)為例,可以有免費(fèi)1年的ssl證書。

使用mongoose操作數(shù)據(jù)庫(kù)

npm install mongoose --save
const mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1/dbname'); //連接數(shù)據(jù)庫(kù)

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ù)庫(kù)中對(duì)應(yīng)的表為yourtables

let yourDoc = new yourModel({
  name : 'yourname',
  age : 18,
});

注意 如果啟動(dòng)mongodb數(shù)據(jù)庫(kù)服務(wù)時(shí)加上了--auth 則使用mongoose連接數(shù)據(jù)庫(kù)時(shí),要加上認(rèn)證的賬戶

mongoose.connect('mongodb://youraccount:pwd@127.0.0.1/dbname');

mongodb與關(guān)系型數(shù)據(jù)庫(kù)的對(duì)應(yīng)關(guān)系

Schema相當(dāng)于表的結(jié)構(gòu),可以預(yù)定義文檔的字段類型,不能進(jìn)行數(shù)據(jù)庫(kù)操作。 Modle可以進(jìn)行一系列數(shù)據(jù)庫(kù)操作,相當(dāng)于表。Model的實(shí)例就相當(dāng)于表的一行。

使用pm2

安裝pm2

npm install  -g pm2

啟動(dòng)應(yīng)用

pm2 start app.js

相關(guān)文章

最新評(píng)論

浦北县| 星座| 南宁市| 潮州市| 彭水| 旺苍县| 和硕县| 喀喇沁旗| 博爱县| 宝应县| 霍山县| 平定县| 松原市| 右玉县| 新闻| 祁阳县| 云和县| 甘德县| 金沙县| 眉山市| 崇文区| 华阴市| 楚雄市| 磐石市| 体育| 四川省| 泗水县| 铁力市| 东城区| 安达市| 通城县| 汾阳市| 康定县| 扬州市| 南乐县| 上林县| 蓬安县| 屏南县| 德令哈市| 海盐县| 井研县|