-
node 属于服务器端的语言 服务端javascript V8引擎运行 性能很快
-
直接运行js到服务器端
-
node 创建第一个服务器
-
http 模块 服务器http协议模块
-
url 模块 路径解析模块
let http=require("http"); //加载http模块
let url=require("url") //加载url模块 使用parse 方法解析路径
创建服务器
req 服务端路径相关信息
res 浏览器的响应信息
let server=http.createServer((req,res)=>{
设置http的响应头
* 参数1: 服务器的响应状态 200成功 500 服务器报错
res.writeHead(200,{"Content-Type":"text/html;charset=utf-8;"});
在服务器 解析一个路径
let location="http://www.maodou.com?name=张三&id=10086"
通过parse 方法 解析路径
通过parse 方法直接将 query 上的传值 解析为json
设置parse方法参数2为true 自动将 query解析为json
let pathName=url.parse(location,true);
服务端写入数据
res.write(JSON.stringify(pathName.query));
req.url 输出服务器端的路径
这种解析就是前端的get传值
let path=url.parse(req.url,true);
下面代码可以直接解析出服务器路径上的传值
res.write(JSON.stringify(path.query));
res.end(()=>{
console.log("服务器响应结束");
});
}).listen(8000,'127.0.0.1',()=>{
// loaclhost 127.0.0.1
console.log("http://localhost:8000");
});
监听服务器端的端口号
将服务模块 暴露出去
exports.server=server;
module.exports=server;
createServer.js 暴露http回调函数:引用时输入回调函数
let http=require('http');
module.exports = (callback) => {
http.createServer((req, res) => {
callback(req, res); //引用时输入回调函数
}).listen(8000,'127.0.0.1', () => {
console.log("http://localhost:8000");
});
};
引用时
//let server=require("./node_modules/createServer");//相对路径去找
let server = require("createServer"); //node 自动找node_modules 下的文件
server((req, res) => {
res.writeHead(200, { "Content-Type": "text/html;charset=utf-8;" });
res.write("我是服务器");
res.end();
不适用相对路径去找
let server=require("./node_modules/createServer");
let server = require("createServer"); //node 自动找node_modules 下的文件
server((req, res) => {
res.writeHead(200, { "Content-Type": "text/html;charset=utf-8;" });
res.write("我是服务器");
res.end();
});
node_modules 文件存在文件夹 获取文件里面的文件
服务端会报错 找不到文件
处理 去 对应的文件夹下 生成配置文件 直接获取文件名称
cnpm init --yes 强制生成
let user = require("data");
console.log(user);
-
文件读取
-
模块是fs
-
异步和同步读取
-
异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。
-
建议大家使用异步方法,比起同步,异步方法性能更高,速度更快,而且没有阻塞
-
文件读取写到服务端上
let fs = require('fs');//加载文件系统模块
module.exports = {
readfile() {
//异步读取文件
let url = "./page/stu.txt";
fs.readFile(url, (error, data) => {
if (error) {
throw error
}
console.log(data.toString());
});
}
}
配置文件package.json文件
npm init /cnpm init
npm init –yes/cnpm init –yes (这种表示严格模式命名)
第三方包的安装
md5单向加密 cnpm install md5 -save-dev
js-base64 cnpm install -save-dev js-base64
let md5=require('md5');
let Base64=require('js-base64');
md5(str);
enstr=Base64.encode(str);
Base64.decode(enstr);