導航:首頁 > 編程語言 > nodejs安裝express

nodejs安裝express

發布時間:2024-12-24 13:40:49

1. nodejs 安裝express的時候可以指定express的版本

可以用的,可以用 npm install express@3.* 來安裝3.x的最新版本就可以了。

2. WIN7下NodeJs全局安裝了express,並且配置了NODE_PATH環境變數,但還是不能在命令行使用express

express,單詞拼寫錯誤。


C:UsersSigma>express-V
3.0.0

3. 調試nodejs用哪個版本的eclipse

  1. 安裝Express。Express是目前最穩定、使用最廣泛,而且是Node.js官 方推薦的唯一一個 Web 開發框架。

  2. 注意:使用npm install -g express以及cnpm install -g express後,雖然看似安裝成功,但是輸入express -V時,仍然提示「express不是內部命令」的錯誤。

  3. 最終發現是版本問題,通過執行npm install -g [email protected]後,輸入express -V成功!

4. 安裝nodejs的時候遇到這個錯誤,求解答

解決方案如下:

我們要先配置npm的全局模塊的存放路徑以及cache的路徑,例如我希望將以上兩個文件夾放在NodeJS的主目錄下,便在NodeJs下建立」node_global」及」node_cache」兩個文件夾。如下圖:

啟動cmd,輸入兩條命令:

npm config set prefix 「e:\php\nodejs\node_global」

npm config set cache 「e:\php\nodejs\node_cache」

選擇express這個比較常用的模塊。同樣在cmd命令行裡面,輸入「npm install express -g」(「-g」這個參數意思是裝到global目錄下,也就是上面說設置的「C:\Program Files\nodejs\node_global」裡面。)

關閉cmd,打開系統對話框,「我的電腦」右鍵「屬性」-「高級系統設置」-「高級」-「環境變數」。如下圖:

進入環境變數對話框,在系統變數下新建」NODE_PATH」,輸入」C:\Program Files\nodejs\node_global\node_moles「。(ps:這一步相當關鍵。) 2014.4.19新增:由於改變了mole的默認地址,所以上面的用戶變數都要跟著改變一下(用戶變數」PATH」修改為「C:\Program Files\nodejs\node_global\」),要不使用mole的時候會導致輸入命令出現「xxx不是內部或外部命令,也不是可運行的程序或批處理文件」這個錯誤。

在你的項目目錄下面,重新輸入npm install ,可以成功解決。

5. nodejs下用npm安裝express出錯,試過各種方法,都解決不了,求助

npm install express --save;

提示什麼錯你沒貼出來。
如果是因為網路問題的話可以去淘寶出品的cnpm解決,http://npm.taobao.org/
安裝好後執行
cnpm install express --save

6. nodejs內置模塊有哪些

一、Express框架

前面的章節已經介紹過了,可以使用npm來安裝node.js模塊。具體操作請參照以前寫的nodejs概論。

Express是一個nodejs的web開源框架,用於快速的搭建web項目。其主要集成了web的http伺服器的創建、靜態文本管理、伺服器URL地址請求處理、get和post請求處理分發、session處理等功能。

使用方法,在cmd中打開你所想創建web項目的路徑。然後輸入

Express appname

即可創建一個名為appname的web項目。控制台列印結果

在jada文件中是可以使用for循環和if判斷語句的,可以讓你體會類似JSP的<%%>和php的<php></php>在網頁上輸出數據的快感。

三、forever模塊

nodejs作為http伺服器,需要確保服務順利進行,要注意一下兩點:

1.後台服務運行,監控運行日誌,以及http運行日誌;

2.確保項目的正常安全運行,Node.js的啟動命令node,很大程度無法滿足運行需求;

Node.js的forever模塊在第二點就可以起到很大的作用,同時其擁有監控文件更改、自動重啟等功能。

forever模塊的使用方法有兩種:1.在命令行中使用

forever -l forever.log -o out.log -e err.log app.js
-l forever.log -o out.log -e err.log分別指定了forever的運行日誌,腳本流水日誌,腳本運行錯誤日誌,啟動後將在本文件夾下產生out.log、err.log文件。

2.在編碼中require forever模塊使用。

四、Socket.IO模塊

Socket.IO模塊主要功能是將WebSocket協議應用到所有瀏覽配廳器。主要用於實時的長連接多求情項目中。

例如:在線聯網游戲,實時聊天、實時股票查看、二維碼掃描登錄掘粗等。

安裝方法仍然是在cmd在中輸入npm install socket.io

如何使用Socket.IO來創建一個項目。

需要分別實現服務端和客戶端的邏輯:

先創建一個服務端的node.js腳本index_server.js

var app = require('http').createServer(handler)//創建伺服器app
, io = require('socket.io').listen(app)//引用socket.io模塊監聽app
, fs = require('fs')//引用文件處理模塊
app.listen(80);//指定app監聽的埠,第二個參數127.0.0.1可省略

function handler (req, res) {
fs.readFile(__dirname + '/index.html', function (err, data) { if (err) {
res.writeHead(500); return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}

io.sockets.on('connection', function (socket) {
socket.emit('判賣鎮news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});

其中,socket.emit()為Socket發送消息的函數,第一個參數表示發送消息的key值,第二個參數為發送消息的內容,也就是發送的數據。

Socket。on()為Socket接收消息的函數,第一個參數為接收消息的可以值,第二個參數為回調函數,其中回調函數攜帶的參數為接收消息所發送的數據。

接下來web前端如何使用javaScrit 來連接Socket伺服器。

新建一個index_client.html

<script type="text/javascript" src="socket.js"></script>
<script type="text/javascript"> var socket = io.connect('http://localhost');//創建本地sock連接
socket.on('news',function (data) {//Socket接收news消息時執行回調函數 console.log(data);
socket.emit('my other event',{my:'data'});
});</script>

<script type="text/javascript" src="socket.js"></script>載入已經安裝好的Socket.io的本地JavaScrit文件。
var socket = io.connect('http://localhost');因為埠為80,所有這里可以不埠號
socket.on('news',function (data){}//客戶端接收news消息成功後,發送my other event消息到服務端,發送的消息內容為json對象{my:'data'}

接下來只需要運行服務端的index_server.js文件來啟動socket服務

效果:在瀏覽器輸入http://127.0.0.1按F12調出瀏覽器的控制台console即可看見列印出了一個object對象。

執行完畢後可能會報錯:catnot find mole socket.io,說明你的socket.IO沒有安裝,或已經安裝並配置為全局,但你的安裝路徑並沒有配置到在path中,所有無法引用。
你可以選擇配置path,或者安裝到項目內。這里建議安裝到你的項目目錄下,而不是簡單粗暴的配置為全局。先卸載npm uninstall socket.io 進入指定目錄後安裝node index_server.js

socket.io詳細請參閱 http://cnodejs.org/topic/50a1fcc7637ffa4155b5a264

五、request模塊

request模塊為開發者提供了一種簡單訪問HTTP請求的方法。request還支持HTTPS的訪問方法。

安裝:

npm install requset

request模塊基本上覆蓋了所有的HTTP請求方式如GET,POST,HEAD,DEL等。但其最基本的兩個方法是request.get()和request.post().

get和post的區別

get:

1.使用get向伺服器發出和接收的請求會附在url之後。類似:http://www..com?id=1221&name=5555這個url中傳遞了兩個參數,一個為id,一個為name。

2.get請求不能超過1024個位元組。

post沒有限制,也不會附在url上。

接下來做一個簡單的實例

get實例:

首先新建一個伺服器app_get.js

var http= require("http");
http.createServer(function(req,res){
res.writeHead(200,{'content-Type':'text/plain'});
res.end('Hello world '+req.method);
}).listen(1337,"127.0.0.1");

再建一個發送求情的request_get.js文件

var request=require('request');
request.get("http://127.0.0.1:1337",function(error,response,result){
console.log(result);
});

在CMD中運行app_get.js,運行成功後,再打開一個cmd(之前的cmd不要關閉),執行request_get.js文件。

執行後的結果如下

hello world
GET

可以看出,通過request.get方法訪問

http://127.0.0.1:1337 返回的結果就是res.end()的參數

post實例:
和上面一樣,先新建伺服器app_post.js

var http= require("http"),
querystring=require('querystring');
http.createServer(function(req,res){ var postData=""; //開始非同步接收客戶端post的數據
req.addListener("data",function (postDataChunk) {
postData += postDataChunk;
}); //非同步post數據接收完畢後執行匿名回調函數
req.addListener("end",function(){ var postStr=JSON.stringify(querystring.parse(postData));
res.writeHead(200,{'content-Type':'text/plain'});
res.end(postStr+' '+req.method);
});
}).listen(1400,"127.0.0.1");

然後再新建一個request_post.js

var request=require("request");
request.post('http://127.0.0.1:1400',{form:{'name':'ermu','book':'node.js'}},function (error,response,result) {
console.log(result);
})

像上面一樣在cmd中執行後顯示的結果如下:

D: odejssrc equest>node request_post.js
{"name":"ermu","book":"node.js"}
POST

request post提交了一個json對象{"name":"ermu","book":"node.js"}而伺服器接通過獲取該POST數據,然後返回客戶端,同時將http請求方式也響應到客戶端。

request post參數可以有兩種傳遞方式。

其中,第一種是將url和form表單的數據作為json參數在request post傳遞。舉例如下:

request.post('url':'http://127.0.0.1:1400',form:{'name':'ermu','book':'node.js'}},function (error,response,result) {
console.log(result);
})

另一種是將url和form作為兩個參數,上面的實例就是使用這種方法。

六、 Formidable模塊

該模塊的目的是為了解決文件上傳。

在原生的node.js模塊中,提供了獲取post數據的方法,但是並沒有直接獲取上傳文件。

7. 手把手教前端從0到1通過Node+Express開發簡易介面,項目開發+部署伺服器(親身痛苦經歷)

?大家好,我是Smooth,一名大二的SCAU前端er?如文章有誤,懇請評論區指正,謝謝!?寫作不易,「點贊」+「收藏」+「轉發」?謝謝支持!

背景

經過網上各種博客的洗禮與尋找,花了一早上終於解決了這個基本問題,完成了前端到後端從0到1的第一小步,為了記錄一下痛苦的過程以及幫助後人少走彎路,因此寫下這篇博客

前置知識

擁有一台伺服器,這里我選用阿里雲(後續直接通過阿里雲界面的遠程連接來操作伺服器,按懶得用SSH客戶端軟體了)

安裝了Node環境(具體操作請自行查看官網文檔https://nodejs.org/zh-cn/download/)

准備好後,那麼便開始,爭取十分鍾拿下!

開發階段創建一個express項目

遠程連接伺服器,進入命令行界面,然後開始下面步驟

1.創建文件夾,初始化項目

mkdirdemo//新建一個文件夾

cddemo//進入該文件夾

npminit-y//初始化一個npm庫

2.安裝該項目所需依賴

npminstallexpress//安裝express依賴

npminstallbody-parser//安裝body-parser依賴

並不需要安裝cors這個依賴,我看很多項目都有這個,其實根本沒必要

3.開始寫介面

此處為了演示,只寫一個簡單的常用的get介面,具體代碼如下:

//app.jsconstexpress=require('express');constapp=express();constbodyParser=require('body-parser');//允許跨域訪問app.all('*',function(req,res,next){res.header("Access-Control-Allow-Origin","*");//所有Origin來源都允許res.header("Access-Control-Allow-Headers","X-Requested-With");res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");res.header("X-Powered-By",Ɖ.2.1');res.header("Content-Type","application/json;charset=utf-8");next();});//處理http請求,解析app.use(bodyParser.urlencoded({extended:false}));//定義變數,做為返回數據letmyGet={method:"get",age:20,name:"Smooth",url:"https://juejin.cn/user/1302297507801358"}//get請求app.get('/getDemo',(req,res)=>{res.status(200);res.json(myGet);//返回處理結果,即將一個對象轉換成JSON字元串返回});app.listen(3000,()=>console.log(&#!'))4.本地測試

先輸入nodeapp.js將express項目暫時跑起來

若出現如下提示則表示運行成功

5.寫一個簡單的html請求一下介面//index.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metahttp-equiv="X-UA-Compatible"content="IE=edge"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>痛苦經歷</title><linkrel="stylesheet"href="./style.css"/><scriptsrc="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script><style>body{margin:0;padding:0;font-family:sans-serif;background-color:#ecf0f1;}.box{width:300px;padding:40px;top:50%;left:50%;transform:translate(-50%,-50%);position:absolute;background-color:#34495e;text-align:center;}.boxinput[type="text"]{background:none;display:block;text-align:center;border:0;margin:20pxauto;border:2pxsolid#2980b9;padding:14px10px;width:200px;outline:none;color:white;border-radius:24px;transition:0.5s;}.boxinput[type="text"]:focus{width:280px;border-color:#3498db;}.boxinput[type="button"]{color:white;background:none;display:block;text-align:center;border:0;margin:20pxauto;border:2pxsolid#2ecc71;padding:14px10px;cursor:pointer;width:180px;outline:none;border-radius:24px;transition:0.25s;}.boxinput[type="button"]:hover{background-color:#2ecc71;}h1{color:#ecf0f1;}</style></head><body><formclass="box"method="post"><h1>痛苦經歷</h1><inputtype="text"name="firstName"placeholder="姓名"class="name"/><inputtype="text"name="firstPassword"placeholder="博客鏈接"class="url"/><inputtype="button"name="firstSubmit"value="點擊讀取信息"class="btn"/></form></body><scripttype="text/javascript">//CORS$(".btn").on("click",function(){console.log("CORS方法發生更改");$.ajax({type:"get",url:"http://localhost:3000/getDemo",success:function(res){console.log(res);//document.getElementsByClassName('url')[0].value=res.url;//document.getElementsByClassName('name')[0].value=res.name;},error:function(err){console.log(err);},});});</script></html>

瀏覽器運行結果如下,則表示成功~

本地測試代碼沒問題後,到了這里介面開發階段完成啦!!!

伺服器部署1.購置伺服器

先買一個伺服器,這里演示我買的是阿里雲

2.伺服器安裝Node環境

可以通過寶塔直接安裝Node,也可以通過在伺服器上依次運行以下指令安裝

yuminstall-yepel-release//安裝附加軟體包項目epel

yuminstall-ynodejs//安裝nodejs

node-v//運行命令查看nodejs版本,測試是否安裝成功,若如下圖出現版本號則安裝成功

3.通過寶塔將寫好的app.js文件上傳到伺服器

進入伺服器的遠程連接的黑窗口頁面後

先輸入:sudosuroot進入root用戶

再查看面板入口:/etc/init.d/btdefault

輸入對應網址並輸入賬號密碼即可來到寶塔界面,然後點擊左側的文件,然後上方點擊根目錄

新建一個api文件夾,並將app.js文件直接拖入該頁面即可成功上傳,如下圖

4.在伺服器安裝依賴並運行app.js文件來運行後端

在伺服器黑窗口頁面通過cdxxx的指令運行到含有app.js文件的地方,即輸入ls有該文件

然後依次執行npminit-y,npminstallbody-parser,npminstallexpress安裝依賴

執行nodeapp.js運行該文件,出現如下圖說明運行成功,此時可訪問http://伺服器ip:3000/getDemo,如果是一個JSON文件,那麼便部署成功!

如果執行文件後過10s還是無法通過以上url方式訪問,那麼可能是伺服器防火牆沒開該埠許可權或是沒開放該埠

防火牆

來到該頁面,新填該埠即可

沒開放該埠

一開始我是卡在這一步,氣死了

開放埠命令:/sbin/iptables-IINPUT-ptcp--dport8080-jACCEPT

以上兩步都完成了話,按理來說是能訪問到了,如果還不行歡迎在評論區提出

5.保持伺服器介面一直運行

由於剛剛我們是通過nodeapp.js來運行後端介面,如果關掉這個黑窗口那該後端項目也隨之停了,如果想一直運行在伺服器上,可通過pm2啟動項目,並管理進程

pm2是一個啟動項目並管理程序的工具,如果你項目意外死掉了,它可以自動幫你重啟。類似的工具還有很多,大家自行Google之~如果有小夥伴不了解pm2,指路http://pm2.keymetrics.io/docs/usage/quick-start/

安裝pm2

npmi-gpm2

檢測pm2是否安裝成功

pm2-v

若出現如下結果,則說明你pm2安裝ok啦!

使用pm2啟動項目

cd你伺服器項目目錄pm2startapp.js//啟動即可

啟動成功如下所示:

(4)測試

我的項目使用的是3000埠,所以http://伺服器ip:3000/getDemo就可以訪問啦,以下是我的ip:埠/介面名稱訪問結果

到此伺服器端部署算是完成啦!

其他知識

由於此次教程是將express項目運行在伺服器的3000埠,如果通過該埠訪問不到express項目,可以通過以下方式逐步排查問題

查看該埠是否開放且有項目

lsof-i:埠號

如果沒有任何輸出則說明沒有開啟該埠號

下圖以3000埠為例,檢查是否開放

也可以使用lsof-i命令直接將開放的埠輸出,來查看某些埠是否開放。

最後

我是Smoothzjc,致力於產出更多且不僅限於前端方面的優質文章

大家也可以關注我的公眾號@Smooth前端成長記錄,及時通過移動端獲取到最新文章消息!

寫作不易,「點贊」+「收藏」+「轉發」?謝謝支持?

往期推薦

《都2022年了還不考慮來學ReactHook嗎?6k字帶你從入門到吃透》

《一份不可多得的Webpack學習指南(1萬字長文帶你入門Webpack並掌握常用的進階配置)》

《通過React15~17的優化迭代來簡單聊聊Fiber》

《【offer收割機之面試必備】一篇非常全面的從URL輸入到頁面展現的全過程精華梳理》

《【offer收割機之手寫系列】10分鍾帶你掌握原理並手寫防抖與節流的立即/非立即執行版本》

《【offer收割機之CSS回顧系列】請你解釋一下什麼是BFC?他的應用場景有哪些?》

《Github+hexo實現自己的個人博客、配置主題(超詳細)》

《10分鍾讓你徹底理解如何配置子域名來部署多個項目》

《一文理解配置偽靜態解決部署項目刷新頁面404問題

《帶你3分鍾掌握常見的水平垂直居中面試題》

《【建議收藏】長達萬字的git常用指令總結!!!適合小白及在工作中想要對git基本指令有所了解的人群》

《淺談javascript的原型和原型鏈(新手懵懂想學會原型鏈?看這篇文章就足夠啦!!!)》

原文:https://juejin.cn/post/7097831496550973454
閱讀全文

與nodejs安裝express相關的資料

熱點內容
fgets空文件 瀏覽:857
傳奇物品文件夾 瀏覽:352
word插入excel圖表 瀏覽:690
xp系統搜索不到本地文件 瀏覽:39
什麼網站可以找到拼團去西藏 瀏覽:247
javatask 瀏覽:50
MFC的文件名 瀏覽:972
cad自動保存的文件怎麼關閉 瀏覽:667
zip文件密碼多少 瀏覽:486
編程培訓哪些好 瀏覽:324
如何把文件夾內容變成文檔 瀏覽:509
小火箭幼兒編程怎麼拿積分 瀏覽:158
火車票時刻表及票價資料庫 瀏覽:94
求平均值java 瀏覽:767
linux如何分屏顯示 瀏覽:257
手機可以直接填寫pdf文件么 瀏覽:554
linux虛擬光碟機軟體 瀏覽:836
米2s最好的版本 瀏覽:640
小米6檢測工具下載 瀏覽:540
桌面創建不了文件夾怎麼回事 瀏覽:894

友情鏈接