Node.js搭建小程序后臺服務(wù)
準(zhǔn)備條件
一臺服務(wù)器
SSL證書,小程序規(guī)定必須要https協(xié)議
服務(wù)器后臺
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文件,復(fù)制里面的內(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ù)庫服務(wù)
mongod --fork --dbpath /data/mongodb --logpath /data/logs/youlog.log
注意:
如果在啟動mongodb服務(wù)時在命令后面加上 --auth即會開啟認證。
建議開啟認證,如果不開會很容易被黑。
--port 12345可以改變數(shù)據(jù)庫的端口號,默認是27017。
--fork是以守護進程的方式啟動數(shù)據(jù)庫服務(wù)。
--dbpath /data/mongodb 指定數(shù)據(jù)庫文件存放的目錄。
--logpath /data/logs/youlog.log 指定日志文件目錄。
mongodb的配置文件默認在 /etc/mongod.conf
啟動客戶端shell
mongo //啟動mongodb客戶端shell 默認連接test數(shù)據(jù)庫
在shell里可以切換數(shù)據(jù)庫連接,和進行相關(guān)操作。
在云服務(wù)器以守護進程的方式啟動一次數(shù)據(jù)庫服務(wù)之后,關(guān)閉終端,服務(wù)也不會被終止。所以下次不用再啟動數(shù)據(jù)庫服務(wù),直接連接就可以。
關(guān)閉數(shù)據(jù)庫服務(wù)
mongod --shutdown (--dbpath /data/mongodb)
如果啟動時加了dbpath而且不是默認的/data/db ,則關(guān)閉數(shù)據(jù)庫服務(wù)時也應(yīng)加上dbpath。
創(chuàng)建https服務(wù)
npm init //項目初始化
安裝express
npm install express --save
實現(xià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認證文件,以騰訊云主機為例,可以有免費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ù)庫中對應(yīng)的表為yourtables let yourDoc = new yourModel({ name : 'yourname', age : 18, });
注意 如果啟動mongodb數(shù)據(jù)庫服務(wù)時加上了--auth 則使用mongoose連接數(shù)據(jù)庫時,要加上認證的賬戶
mongoose.connect('mongodb://youraccount:pwd@127.0.0.1/dbname');
mongodb與關(guān)系型數(shù)據(jù)庫的對應(yīng)關(guān)系
Schema相當(dāng)于表的結(jié)構(gòu),可以預(yù)定義文檔的字段類型,不能進行數(shù)據(jù)庫操作。 Modle可以進行一系列數(shù)據(jù)庫操作,相當(dāng)于表。Model的實例就相當(dāng)于表的一行。
使用pm2
安裝pm2
npm install -g pm2
啟動應(yīng)用
pm2 start app.js
相關(guān)文章
Nest.js系列學(xué)習(xí)之初識nest項目框架及服務(wù)
這篇文章主要為大家介紹了Nest.js系列學(xué)習(xí)之初識nest項目框架及服務(wù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02nodejs簡單訪問及操作mysql數(shù)據(jù)庫的方法示例
這篇文章主要介紹了nodejs簡單訪問及操作mysql數(shù)據(jù)庫的方法,結(jié)合實例形式分析了nodejs創(chuàng)建mysql連接、執(zhí)行sql語句及關(guān)閉連接等相關(guān)操作技巧,需要的朋友可以參考下2018-03-03Nodejs把接收圖片base64格式保存為文件存儲到服務(wù)器上
這篇文章主要介紹了Nodejs把接收圖片base64格式保存為文件存儲到服務(wù)器上,文中代碼較簡短,需要的朋友可以參考下2018-09-09Express 框架中使用 EJS 模板引擎并結(jié)合 silly-datetime
這篇文章主要介紹了Express 框架中使用 EJS 模板引擎并結(jié)合 silly-datetime 庫進行日期格式化的實現(xiàn)方法,結(jié)合具體實例形式分析了express框架引入EJS模版以及導(dǎo)入 silly-datetime 庫的格式化方法傳遞給EJS模版使用的相關(guān)操作技巧,需要的朋友可以參考下2023-05-05