1. 程式人生 > >零基礎個人建站——混合模式開發之專案上線那些坑 、二

零基礎個人建站——混合模式開發之專案上線那些坑 、二

用nodejs 開啟我們的服務   (這裡採用KOA框架   和mongodb 資料庫)關於裡面的詳細程式碼我就不說了,,沒有基礎的同學要去努力學習~~~~

一 、 全域性安裝koa-腳手架

1、新建專案目錄,準備在哪裡建立專案和寫程式碼,就在哪裡建立即可。

2、開啟命令列視窗。安裝koa-generator,安裝命令為: 

 npm install -g koa-generator

3、使用koa-generator生成koa2專案,輸入命令: (koa_demo為“專案名稱”,即:專案資料夾)

koa2 koa_demo

備註: 我使用 ejs 模版,因此,生成koa2專案時,我一般輸入命令:koa2 koa_demo -e --ejs (這樣,就把預設的jade 換成了 ejs 了)

4、建立專案成功之後進入koa_demo專案,然後進行安裝koa2依賴就可以了

cd koa_demo && npm install

5、安裝完成之後通過命令:npm start 啟動專案,開啟瀏覽器 http://localhost:3000/ 就能看到頁面了。

備註:引數相關 
在建立專案時,可以定製自己想要的東東,以下是引數:

-h --help

 幫助

-V --version 版本號

-e --ejs 新增ejs模板引擎支援(預設是jade)

--hbs 新增hbs模板引擎支援(預設是hbs)

-H --hogan 新增hogan.js支援

-c --css <engine> 新增css樣式 支援 less sass styus css(預設是css)

--git (g小寫) 新增 .gitignore

-f --force force on non-empty directory

 

要是開啟成功的話會顯示

 

現在我們一就可以通過伺服器來構建我們服務,,我們需要關心這一段程式碼


app.use(require('koa-static')(__dirname + '/public'))

如果我們需要向前臺返回 靜態資源  只需要將我們的專案目錄放在public下,到時候訪問對應html。

如果我們需要配置專案其他的api  就需要載入其他的模組 來配置對應的路由,傳送不同的資料給前臺

const router = require('koa-router')()

router.get('/', async (ctx, next) => {
  await ctx.render('index', {
    title: 'Hello Koa 2!'
  })
})

router.get('/string', async (ctx, next) => {
  ctx.body = 'koa2 string'
})

router.get('/json', async (ctx, next) => {
  ctx.body = {
    title: 'koa2 json'
  }
})

module.exports = router

最後別忘了把對應路由載入到主執行緒裡邊。

現在 ,,我拖了一個html的靜態資源放在自己的public 目錄下專案結構如圖所示

,然後去訪問

http://localhost:3000/050/index.html

對應頁面就可以成功的訪問了。

 

這是在本地   如果實在伺服器上呢??so  easy  把同樣的步驟在走一遍不就完了,

1、開啟SLL 終端   開啟對應的檔案目錄把整個專案拖到這個資料夾下,,注意,,如果你不想上傳的很慢的話要把nodemoudles資料夾刪除再上傳  在伺服器在npm 下載  。另一個我們要注意下端口占用的問題,常用的80  3000 8080埠一般都是拋給主要的服務,自己設定的埠要記得。

2.伺服器環境安裝node 和 npm  這種有很多方法,大家自行百度,這裡說一種我認為最簡單的,,通過node版本管理器來安裝,

執行:

先安裝node  版本管理器

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash

 之後需要啟用nvm:

 source ~/.nvm/nvm.sh

啟用完成後,安裝node

nvm install node 

 安裝完成後,切換到該版本

nvm use node

  執行完檢查一下


[[email protected] ~]# node -v
v10.9.0
[[email protected] ~]# npm -v
6.2.0

說明安裝成功。

現在  專案上傳完成之後 我們執行

cd /usr/local/nodeproject

然後

npm install

  安裝所有依賴就可以在伺服器上啟動我們的專案。

理論上  我們的專案現在可以通過我們的公網ip + 埠訪問  然而!!!!

問題就出在這裡    電腦防火牆可不是吃素的  隨隨便便就進來了,,那還了得,,下載我們需要去阿里的伺服器控制檯

新增規則   http 協議   埠號開啟   我們就可以通過公網ip+埠訪問我們的服務了  我這裡是tomcat伺服器,

然而  在運行了node 之後  我們也可以訪問了,,大功告成,,合上電腦   卻發現   服務又掛了,,這是怎麼回事???

原來在linux  每個session 是有生命週期的   當前session下開啟的程序會隨著session的關閉而被殺死。。我們需要在執行node   **.js時  變為nohup  後臺執行就行了   或者也可以把本次執行的命令變為一個常駐服務(類似於mysql),這裡不再詳述。

nohup npm start &
exit

ok???這樣  就可以隨時隨地的訪問遠端電腦上的服務了。

  最後   如果需要資料庫,,還有我們大部分時候肯定不會主機命加埠訪問,,這該怎麼做!!!

歡迎關注下一篇部落格~~~~