從0搭建小程序Node.js后臺服務

準備條件

  • 一臺服務器
  • 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

原文地址

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末域那,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子桅锄,更是在濱河造成了極大的恐慌琉雳,老刑警劉巖样眠,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件友瘤,死亡現(xiàn)場離奇詭異,居然都是意外死亡檐束,警方通過查閱死者的電腦和手機辫秧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來被丧,“玉大人盟戏,你說我怎么就攤上這事绪妹。” “怎么了柿究?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵邮旷,是天一觀的道長。 經(jīng)常有香客問我蝇摸,道長婶肩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任貌夕,我火速辦了婚禮律歼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘啡专。我一直安慰自己险毁,他們只是感情好,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布们童。 她就那樣靜靜地躺著畔况,像睡著了一般。 火紅的嫁衣襯著肌膚如雪慧库。 梳的紋絲不亂的頭發(fā)上问窃,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機與錄音完沪,去河邊找鬼域庇。 笑死,一個胖子當著我的面吹牛覆积,可吹牛的內(nèi)容都是我干的听皿。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼宽档,長吁一口氣:“原來是場噩夢啊……” “哼尉姨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起吗冤,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤又厉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后椎瘟,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體覆致,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年肺蔚,在試婚紗的時候發(fā)現(xiàn)自己被綠了煌妈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖璧诵,靈堂內(nèi)的尸體忽然破棺而出汰蜘,到底是詐尸還是另有隱情,我是刑警寧澤之宿,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布族操,位于F島的核電站,受9級特大地震影響比被,放射性物質(zhì)發(fā)生泄漏坪创。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一姐赡、第九天 我趴在偏房一處隱蔽的房頂上張望莱预。 院中可真熱鬧,春花似錦项滑、人聲如沸依沮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽危喉。三九已至,卻和暖如春州疾,著一層夾襖步出監(jiān)牢的瞬間辜限,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工严蓖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留薄嫡,地道東北人。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓颗胡,卻偏偏與公主長得像毫深,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子毒姨,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容