一、下載node,安裝node環境
二、使用vscode開發,簡單配置開發環境
安裝Nodejs開發插件
三、Http模塊
Server.js:
// 創建node服務器 使用http模塊
var http=require("http");
// req指代url信息 res指的是瀏覽器返回的響應信息 listen()指監聽的端口號
http.createServer(function(req,res){
if(req.url!="/favicon.ico"){
console.log(req.url);
//設置http的響應頭
res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
res.write("nodejs服務器");
}
//請求完成之後,響應結束
res.end();
}).listen(8100);
四、url模塊
Server.js:
/*
http://localhost:8100/?id=1&name=zhangsan
想要解析路徑上的值 需要引入url模塊
*/
var http=require("http");
var url=require("url");
http.createServer(function(req,res){
if(req.url!="/favicon.ico"){
let path=url.parse(req.url,true); //url.parse 解析路徑上的get傳值; true指解析出來爲json數據格式
let data=path.query;
console.log(data);
res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
res.write("nodejs服務器");
}
res.end();
}).listen(8100);
只設置參數1(未解析):
設置了兩個參數(已解析):
補充:在nodejs中文件修改需要重啓服務:這樣開發比較慢,可安裝自啓動工具supervisor
npm install –g supervisor
安裝完成後啓動文件使用 supervisor ****.js
啓動服務後,修改代碼會自動啓動服務
五、自定義模塊
Commonjs nodejs中的自定義模塊:
Commonjs規範的提出,彌補javascript沒有標準的缺陷,提供一個類似後端語言的標準庫,也就是說commonjs是模塊化的標準,nodejs就是commonjs模塊化的實現。在nodejs中除了http,url,fs等都是nodejs的內置模塊,可直接使用,commonjs中自定義模塊的實現:
在nodejs中將公共的功能抽離爲單獨的js文件作爲模塊,在外部是沒有辦法訪問的(類似後端的私有的屬性和方法);要想使用模塊,就必須在模塊裏面通過exports或者module.exports暴露屬性或者方法。在需要的模塊使用require引入模塊。
- 模塊化封裝導入
引用上例Server.js,加入模塊暴露:
var http=require("http");
var url=require("url");
let server=http.createServer(function(req,res){
if(req.url!="/favicon.ico"){
let path=url.parse(req.url,true);
let data=path.query;
console.log(data.id);
res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
res.write("nodejs服務器");
}
res.end();
}).listen(8100);
//進行模塊暴露
module.exports=server;
在App.js中接收:
let server=require("./Server");
- 數據型模塊封裝
Server.js:
var http=require("http");
var url=require("url");
var stu=require("./student"); //導入
let server=http.createServer(function(req,res){
if(req.url!="/favicon.ico"){
let path=url.parse(req.url,true);
let data=path.query;
res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
let name=stu.name;
res.write(name);
}
res.end();
}).listen(8100);
module.exports=server;
student.js:
let stu={
name:"yian",
job:"student"
}
module.exports=stu;
- 函數型模塊封裝
Server.js:
var http=require("http");
var url=require("url");
var fun=require("./collection");
let server=http.createServer(function(req,res){
if(req.url!="/favicon.ico"){
let path=url.parse(req.url,true);
let data=path.query;
res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
console.log(fun());
res.write(name);
}
res.end();
}).listen(8100);
module.exports=server;
collection.js:
module.exports=function(){
var s="123";
return s;
}
說明:nodejs 可以自動找node_modules文件下的文件 :
- 如果node_modules文件下沒有文件夾,可將文件新建到其下;
- 如果node_modules文件下有文件夾,可在cd進入這個文件,使用命令npm init –yes,安裝當前文件的package.json文件,直接請求require(“名字”)
collection.js:
module.exports=function(){
var s="123";
return s;
}
App.js:
let fun=require("collection");
console.log(fun());
六、第三方包模塊和 package.json 項目文件
- 創建 node項目後先使用命令進入項目文件,安裝項目的配置文件package.json;
使用命令npm init /cnpm init
或npm init –yes/cnpm init –yes (嚴格模式命名)
package.json:
{
"name": "node03",
"version": "1.0.0",
"description": "",
"main": "App.js",
"dependencies": {},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js"
},
"author": "",
"license": "ISC"
}
- Nodejs第三方包的使用(第三方包使用建議官網:www.npmjs.com)
例如第三方包: md5-node包(只可加密,不可解密)
-
安裝包:
npm install md5-node –-save
-
安裝完之後項目裏生成一個node_modules依賴文件
-
使用:
//使用第三方包
var md5=require('md5-node');
console.log(md5('123456')); //e10adc3949ba59abbe56e057f20f883e
md5加密,是按照加密之後的值進行比對