本地:Windows10 64位node
服務器:阿里雲輕量應用服務器CentOS 7.3linux
使用的鏈接工具:
putty
mobaxterm
固然還有Xshell
這幾個中任選一個就好啦。mongodb
鏈接工具使用方法:
建立session>ssh
填入服務器IP
地址和用戶名(root
),點擊確認而後輸入密碼便可。
(這個是mobaxterm
的使用方法,其餘的也都一個套路。)shell
使用wget命令下載Node包數據庫
wget https://nodejs.org/dist/v8.10.0/node-v8.10.0-linux-x64.tar.xz
解壓文件npm
tar xvf node-v8.10.0-linux-x64.tar.xz
建立軟鏈接,主要是爲了命令能夠全局有效vim
ln -s /root/node-v8.10.0-linux-x64/bin/node /usr/local/bin/node ln -s /root/node-v8.10.0-linux-x64/bin/npm /usr/local/bin/npm
查看是否成功windows
node -v npm -v
備註 :固然也能夠採用其餘的方式搭建node運行環境,例如使用NVM下載
,具體的我就不列出了。瀏覽器
新建項目文件example.js。服務器
cd ~ touch example.js
使用vim編輯器打開項目文件example.js。
yum install vim vim example.js
輸入"i",進入編輯模式,將如下項目文件內容粘貼到文件中。使用"Esc"按鈕,退出編輯模式,輸入":wq",回車,保存文件內容並退出(這裏的0.0.0.0至關於windows的127.0.0.1)
const http = require('http'); const hostname = '0.0.0.0'; const port = 80; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World!\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
運行項目
node ~/example.js //也能夠用下面的代碼後臺運行 node ~/example.js &//後臺運行 netstat -tpln//查看端口運行狀況
在瀏覽器打開http://IP:80
若是看到Hello World,恭喜部署成功
這裏有幾個須要注意的
若是你用後臺運行之後,這個端口會被佔用,如何關閉
netstat -tpln//查看端口pid kill -9 pid
備註 : 此時防火牆是關閉的。(not running
)
當我嘗試打開防火牆,將端口添加到例外,並在端口(3000
)上運行時,使用公網IP出現了訪問不了的狀況,不知道有哪位大神能夠大概說明一下緣由?
能夠看到端口已經添加到例外了:
firewall-cmd --state
firewall-cmd --permanent --list-port permanent 永久配置
firewall-cmd --permanent --zone=public --add-port=3000/tcp
[root@localhost ~]# firewall-cmd --permanent --list-port // 80/tcp 3000/tcp
firewall-cmd --permanent --remove-port=80/tcp
[root@localhost ~]# firewall-cmd --permanent --list-port // 3000/tcp
systemctl stop firewalld
systemctl start firewalld
前面的全部完成之後,如何讓這個node進程一直活着呢?
全局安裝cnpm,能夠大大的提高下載速度
npm install -g cnpm --registry=https://registry.npm.taobao.org
安裝pm2
cnpm install -g pm2
pm2使用
pm2 start example.js //啓動服務 pm2 list //查看啓動的應用 pm2 show example.js //查看詳細信息 pm2 logs //查看當前信息 pm2 stop example.js //中止example pm2 delete example.js //刪除example
MongoDB 提供了 linux 各發行版本 64 位的安裝包,你能夠在官網下載安裝包。
下載地址:https://www.mongodb.com/downl...
// 下載 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz // 解壓 tar -zxvf mongodb-linux-x86_64-amazon-3.6.3.tgz // 將解壓的包添加到指定目錄 mv mongodb-linux-x86_64-amazon-3.6.3/ /usr/local/mongodb
MongoDB 的可執行文件位於 bin 目錄下,因此能夠將其添加到 PATH 路徑中。
export PATH=<mongodb-install-directory>/bin:$PATH
<mongodb-install-directory> 爲你 MongoDB 的安裝路徑。如本文的 /usr/local/mongodb 。
MongoDB的數據存儲在data目錄的db目錄下,可是這個目錄在安裝過程不會自動建立,因此你須要手動建立data目錄,並在data目錄中建立db目錄。
如下實例中咱們將data目錄建立於根目錄下(/)。
注意:/data/db 是 MongoDB 默認的啓動的數據庫路徑(--dbpath)。
mkdir -p /data/db
你能夠再命令行中執行mongo安裝目錄中的bin目錄執行mongod命令來啓動mongdb服務。
注意:若是你的數據庫目錄不是/data/db,能夠經過 --dbpath 來指定。
若是你須要進入MongoDB後臺管理,你須要先打開mongodb裝目錄的下的bin目錄,而後執行mongo命令文件。
MongoDB Shell是MongoDB自帶的交互式Javascript shell,用來對MongoDB進行操做和管理的交互式環境。
MongoDB是一個基於分佈文件存儲的數據庫,是一個介於關係數據庫和非關係數據庫之間的產品。
show dbs // 顯示全部數據庫的列表 use local // 鏈接到一個指定的數據庫,不存在則建立
使用用戶名和密碼鏈接登陸到指定數據庫:
mongodb://admin:123456@localhost/test
use local // 切換到該數據庫下 show tables //查看全部的集合(數據表) db.site.drop() // 刪除site這個集合(數據表)
db.createCollection(name,options); // eg: 建立固定大小的集合 db.createCollection('mycol',{ capped:true, autoIndexId:true, // 自動在_id字段建立索引 size:6142800, // 整個集合大小(kB) max:10000 //文檔最大個數(數據條數) }); 當你插入文檔時,MongoDB會自動建立集合: db.mycol2.inset({"name":"bjw"});
db.collection.update({ <query>, // 查詢條件 <update>, // 更新的對象 { upsert:<boolean>, // 不存在是否插入,默認false,true爲插入 multi:<boolean>, // 默認false,只更新找到的第一條數據 writeConcern:<document> } }); // eg: db.col.update( {"name":"admin"}, {$set:{"passowrd":"123"}}, {multi:true} // 更新多條數據 );
在執行remove函數以前,先執行find()命令來判斷執行的條件是否正確。(習慣問題)
db.collection.remove( <query>, // 條件 <justOne> // justOne:true 只刪除找到的第一個文檔 );
db.collection.find(); db.col.find().pretty(); // 以格式化的方式顯示全部文檔 db.col.find( {"likes":{$lt:50}} ).pretty(); // 找到like數小於50的全部文檔
gt : greater than
le : less than {$lte:50} ==> 小於等於50
{$gt:50} ==> 大於50
{$gte:50} ==> 大於等於50
利用這兩個方法能夠實現分頁。這個方法只適合小數據的分頁,若是是百萬級效率會很是低。
1:升序
-1:降序
db.col.find().sort({_id:-1}); // 按照插入數據時間的降序排列
填寫主辦單位信息
==> 填寫網站信息
==>上傳資料
==> 辦理拍照
==> 提交管局
==> 備案完成