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插件使用

相关推荐
__zRainy__6 小时前
Node系列 · ORM:Sequelize 简介
数据库·后端·node.js
计算机魔术师6 小时前
斯坦福研究:AI 对入门级岗位冲击最大
前端
感谢一路走过的人7 小时前
AGGrid刷新数据后执行筛选
javascript·ag-grid
水獭比特7 小时前
工具都批准了,为什么还不能执行?给 Agent 补上第二道校验
javascript·人工智能·node.js
Simon_He7 小时前
一个渲染内核,五个框架包:我的流式 Markdown 渲染库是怎么长成“全家桶”的
前端·vue.js·markdown
小满zs7 小时前
关于HBuilderX+ 微信小程序开发工具启动的问题
前端·uni-app
林深见鹿_海蓝见鲸7 小时前
微信小程序反编译完整教程(Windows 新手版)
前端
夏雪coding7 小时前
JeecgBoot 动态路由踩坑(Vue2):刷新白屏、permissionList[0] 报 undefined,以及我最后为什么全删了
javascript·vue.js
默_笙8 小时前
😋 我让爬虫终于看到了我的网站,后端同事说"这也行?"(上):SEO 与渲染模式
前端·javascript
feixing_fx8 小时前
告别枯燥字体:Web 字体加载策略与 font-display 最佳实践
前端·css·前端框架·交互·css3