nodejs

1、下载

Node.js --- Run JavaScript Everywhere

2、环境搭建

node -v 查看版本

npx 运行外连接

3、小试

运行:node test.js

4、全局变量

console.log(__dirname);//打印当前所在目录

console.log(__filename);//打印全路径

5、外部引用

node js中引入外部,不能使用SE6中的import,会报

Cannot use import statement outside a module

需要被引用的文件

fnTool.js

let sum_fn = function(a,b){
	return a+b;
}

module.exports = sum_fn

test.js

console.log("=======node==开始======");

let sum_fn = require("./fnTool.js");

console.log(sum_fn(3,5));

6、文件的读写

同步读写

var readMe = fs.readFileSync("./fnTool.js","utf-8");
console.log(readMe)

异步读写

//====================异步=============

var reader = fs.readFile("./fnTool.js","utf-8",function(err,data){
	fs.writeFile("./newFile1.js",data,function(){
		console.log("读写完成");
	});
});

7、文件流 和 管道

文件流:

读:

let readerStream = fs.createReadStream(__dirname+"/fnTool.js","utf-8");
let data = "";
readerStream.on("data",function(chunk){
	data+=chunk;
});

readerStream.on("end",function(){
	console.log(data);
});

写:

var writerStream = fs.createWriteStream(__dirname+"/newFile.js","utf-8");
writerStream.write("NODE JS");
writerStream.end();
writerStream.on("finish",function(){
	console.log("写入完成");
});

读写:

let readerStream = fs.createReadStream(__dirname+"/fnTool.js","utf-8");
var writerStream = fs.createWriteStream(__dirname+"/newFile.js","utf-8");
let data = "";
readerStream.on("data",function(chunk){
	writerStream.write(chunk);
});

readerStream.on("end",function(){
	console.log("读出完成");
});

管道写:

let readerStream = fs.createReadStream(__dirname+"/fnTool.js","utf-8");
var writerStream = fs.createWriteStream(__dirname+"/newFile.js","utf-8");
readerStream.pipe(writerStream);

8、Web服务请求

console.log("=======node==开始======");

let http = require("http");

var server = http.createServer(function(req,res){
	console.log("la la la");
});
server.listen(3000,"127.0.0.1");

访问它

后端就会显示:

向前端返回字符:
console.log("=======node==开始======");


let http = require("http");

var server = http.createServer(function(req,res){
	//设置返回内容
	res.writeHead(200,{
		"Content-Type":"text/plain"
	});
	res.end("Hello world");
});

server.listen(3000,"127.0.0.1");

http://localhost:3000/

向前端返回HTML:
console.log("=======node==开始======");


let http = require("http");
let fs = require("fs");

var server = http.createServer(function(req,res){
	//设置返回内容
	res.writeHead(200,{
		"Content-Type":"text/html"
	});
	
	var reader = fs.createReadStream(__dirname+"/list.html");
	reader.pipe(res);//直接通过管道写入 返回
	
});

server.listen(3000,"127.0.0.1");
向前端返回json:
let http = require("http");
let fs = require("fs");

var server = http.createServer(function(req,res){
	//设置返回内容
	res.writeHead(200,{
		"Content-Type":"text/json"
	});
	let json = {a:"1",b:"2",c:"中国"};
	
	res.end(JSON.stringify(json));
	
});

server.listen(3000,"127.0.0.1");

9、事件驱动

const Events = require("events");

const myEvent= new Events();

myEvent.on("done",()=>{
	console.log("事件执行完成");
});

myEvent.on("done",()=>{
	console.log("事件执行完成22");
});

myEvent.emit("done");

10、buffer

console.log("=======node==开始======");
let buf = Buffer.alloc(6);
buf.fill('3')
console.log(buf.toString())

let b1 = Buffer.from('中国');
let b2 = Buffer.from('人民');

let b = Buffer.concat([b1,b2],9);
console.log(b.toString());

nodemon插件使用

相关推荐
Li清水3 分钟前
前端工程化
前端·javascript·前端框架·vue
云析赢指标公式网4 分钟前
文华财经盘立方期货通鳄鱼指标公式均线交易策略源码
前端
喵_美43 分钟前
选项卡切换(排他法、轮转法、轮转法之事件委托)
前端·javascript
爱前端的小菜鸡44 分钟前
uniapp + vue3 + Script Setup 写法变动 (持续更新)
javascript·vue.js·uni-app
Ku1s1 小时前
字节跳动 AML 前端 一面
前端
新知图书2 小时前
【图书推荐】《HTML5+CSS3 Web前端开发与实例教程(微课视频版)》
前端·css3·html5
C or Cpp2 小时前
Node.js path模块
node.js
程序猿经理2 小时前
Node.js有什么优点
node.js
Simaoya2 小时前
vue process.env.VUE_APP_BASE_API的相关配置及axios简单封装
前端·javascript·vue.js
wusp19942 小时前
理解JSON Web Token(JWT)及其在Node.js中的使用
前端·node.js·json·jwt