首頁 web前端 js教程 在Node.js中如何搭建小程式後台服務

在Node.js中如何搭建小程式後台服務

Jun 13, 2018 pm 06:13 PM
nodejs

最近在做微信的應用號小程式開發,小程式的後台資料介面需要https安全請求,所以需要我的nodejs伺服器能夠提供https的支持,現在就將整個https伺服器的搭建過程說一下

準備條件

一台伺服器

SSL證書,小程式規定必須要https協定

伺服器後台

Node.js
express
mongodb
pm2

下面以騰訊雲端主機(centos)為例

#安裝Node.js

yum install nodejs

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

#安裝git

yum install git

連接到遠端程式碼庫

以github為例:

設定用戶訊息

1

2

git config --global user.name youname

git config --global user.email youemail

登入後複製

產生ssh公鑰

ssh -keygen -t rsa -C youemail

##預設產生目錄為/ root/.ssh

在目錄中找到id_rsa.pub文件,複製裡面的內容,在自己的github上添加ssh

安裝mongodb和客戶端shell

#yum install mongodb-server mongodb -y

建立資料庫檔案存放目錄

1

2

mkdir -p /data/mongodb

mkdir -p /data/logs/mongodb

登入後複製

啟動mongodb資料庫服務



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

注意:

如果在啟動mongodb服務時在指令後面加上--auth即會開啟認證。

建議開啟認證,如果不開會很容易被駭。

--port 12345可以改變資料庫的連接埠號,預設是27017。

--fork是以守護程式的方式啟動資料庫服務。

--dbpath /data/mongodb 指定資料庫檔案存放的目錄。

--logpath /data/logs/youlog.log 指定日誌檔案目錄。

mongodb的設定檔預設在/etc/mongod.conf

啟動客戶端shell

mongo  //啟動mongodb客戶端shell 預設連接test資料庫

在shell裡可以切換資料庫連接,和進行相關操作。

在雲端伺服器以守護程式的方式啟動一次資料庫服務之後,關閉終端,服務也不會被終止。所以下次不用再啟動資料庫服務,直接連線就可以。

關閉資料庫服務

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

如果啟動時加了dbpath而且不是預設的/data/db ,則關閉資料庫服務時也應加上dbpath。

建立https服務

npm init  //專案初始化

安裝express

npm install express --save

實現簡單的https伺服器

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

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操作資料庫

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

npm install mongoose --save

const mongoose = require('mongoose');

mongoose.connect('mongodb://127.0.0.1/dbname'); //连接数据库

 

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); //在数据库中对应的表为yourtables

 

let yourDoc = new yourModel({

  name : 'yourname',

  age : 18,

});

登入後複製
注意如果啟動mongodb資料庫服務時加上了--auth 則使用mongoose連接資料庫時,要加上認證的帳戶

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

mongodb與關係型資料庫的對應關係

#Schema相當於表格的結構,可以預先定義文件的欄位類型,不能進行資料庫操作。 Modle可以進行一系列資料庫操作,相當於表格。 Model的實例就相當於表格的一行。

使用pm2

安裝pm2

#npm install  -g pm2##啟動應用程式

pm2 start app.js

###上面是我整理給大家的,希望未來會對大家有幫助。 ######相關文章:#########在vue中如何編譯打包查看index檔############在vue中如何使用Jade模板#### ########在Angular中向元件傳遞模板#######

以上是在Node.js中如何搭建小程式後台服務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

nodejs和tomcat區別 nodejs和tomcat區別 Apr 21, 2024 am 04:16 AM

nodejs和tomcat區別

nodejs和vuejs區別 nodejs和vuejs區別 Apr 21, 2024 am 04:17 AM

nodejs和vuejs區別

nodejs是後端框架嗎 nodejs是後端框架嗎 Apr 21, 2024 am 05:09 AM

nodejs是後端框架嗎

nodejs安裝目錄裡的npm與npm.cmd檔有什麼差別 nodejs安裝目錄裡的npm與npm.cmd檔有什麼差別 Apr 21, 2024 am 05:18 AM

nodejs安裝目錄裡的npm與npm.cmd檔有什麼差別

nodejs中的全域變數有哪些 nodejs中的全域變數有哪些 Apr 21, 2024 am 04:54 AM

nodejs中的全域變數有哪些

nodejs是後端開發語言嗎 nodejs是後端開發語言嗎 Apr 21, 2024 am 05:09 AM

nodejs是後端開發語言嗎

nodejs和java的差別大嗎 nodejs和java的差別大嗎 Apr 21, 2024 am 06:12 AM

nodejs和java的差別大嗎

nodejs和java選哪個 nodejs和java選哪個 Apr 21, 2024 am 04:40 AM

nodejs和java選哪個

See all articles