Node.js搭建小程序后臺(tái)服務(wù)
準(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)文章
Node.js+Express+Vue+MySQL+axios的項(xiàng)目搭建全過(guò)程
這篇文章主要介紹了Node.js+Express+Vue+MySQL+axios的項(xiàng)目搭建全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
nodejs使用readline逐行讀取和寫入文件的實(shí)現(xiàn)
這篇文章給大家介紹了nodejs使用readline逐行讀取和寫入文件的實(shí)現(xiàn)方法,文中通過(guò)代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01
NodeJs+MySQL實(shí)現(xiàn)注冊(cè)登錄功能
這篇文章主要為大家詳細(xì)介紹了NodeJs+MySQL實(shí)現(xiàn)注冊(cè)登錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
node.js 中國(guó)天氣預(yù)報(bào) 簡(jiǎn)單實(shí)現(xiàn)
本文主要介紹使用node.js做一個(gè)自用的天氣插件,需要的朋友可以參考下。2016-06-06
nodejs+socket.io實(shí)現(xiàn)p2p消息實(shí)時(shí)發(fā)送的項(xiàng)目實(shí)踐
本文主要介紹了nodejs+socket.io實(shí)現(xiàn)p2p消息實(shí)時(shí)發(fā)送,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06

