一文上手nodejs(发布npm包)

一文上手nodejs

阅读本文的前提是已经了解了js的基本语法
nodejs为后端而生
简单的说 Node.js 就是运行在服务端的 JavaScript。
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

优势

性能好 对前端来说,易上手
官网下载安装
https://nodejs.org/en/

从hello world开始

console.log("hello world");//保存为hello.js

运行:node hello.js

简版http服务器

const http = require("http");
http.createServer(function(req,res){
	//console.log(req.url); 
	// 根据请求的路径自己写路由分发请求,返回对应的内容
	// 这要等后面学习了文件操作以后才可以实现
	res.write('server response');
	res.end();
}).listen(8080);

文件操作(读和写)

const fs = require("fs");
var path = __dirname +"/test.txt";
fs.readFile(path,function(err,data){
	if(err){
		console.log('读取失败');
	}else{
		console.log(data.toString());
	}
});
fs.writeFile(path,"The words are writen by nodejs",function(err){
	console.log(err);
});

利用文件读写实现访问服务器指定页面

const http = require("http");
const fs = require("fs");
http.createServer(function(req,res){
	var baseDir = __dirname+'/www';//网站根目录
	var file = baseDir+req.url;// 指定文件
	//console.log(file);
	fs.readFile(file,function(err,data){
	if(err){
		res.write('404');
	}else{
		res.write(data);
	}
	res.end();
});
}).listen(8080);

服务端接收post get提交的数据(querystring库 url库)

接收get数据:

const http = require("http");
const queryString = require("querystring");
const urlLib = require('url');
http.createServer(function(req,res){
	var url = req.url;
	// querystring解析get请求参数
	/*
	var GET = {};
	if(url.indexOf('?')!=-1){
		var qs = url.split('?');
		GET = queryString.parse(qs[1]);
		console.log(GET);
	}
	*/

	// url库解析get请求参数
	var obj = urlLib.parse(url,true);
	console.log(obj);

	res.write('aaa');
	res.end();
}).listen(8080);

接收post数据:

const http = require("http");
const queryString = require("querystring");
http.createServer(function(req,res){
	// 接收解析post数据
	// 当有一段数据到达时触发,数据量大时会分多段传输,这里会被触发多次
	var str = "";// 注意,字符串不能接收所有类型的post数据,比如当用户上传了一个文件时,就不能用字符串接收  
	var i=1;
	req.on('data',function(data){
		console.log(`第${i++}次接收数据`);
		str += data;
	});
	// 当传输结束时触发,这里只会触发一次
	req.on('end',function(){
		var POST = queryString.parse(str);
		console.log(POST);
	});
	res.write('aaa');
	res.end();
}).listen(8080);

模块化

系统模块

https://nodejs.org/dist/latest-v14.x/docs/api/
这里有很多系统模块可以使用并且有详细的文档可查阅
自定义模块
若要自定义模块,我们首先介绍三个知识点
require : 包含其它模块,例:const http = require(“http”);
加载顺序:系统模块 > node_modules > 其它路径的自定义模块
exports :对外单个输出,例:exports.a=1;
module :对外批量输出,例:module.exports={a:1,b:2}

npm包管理器

功能:
统一下载路径
自动下载依赖
安装npm本身
nodejs安装程序会自带npm工具
使用npm安装包:npm install 包名 例如:npm install mysql
使用npm卸载包:npm uninstall 包名 例如:npm uninstall mysql
如何发布自己的包到npm官网
首先,熟悉一下npm命令,这里是文档:https://docs.npmjs.com/cli/v6/commands/

发布一个包需要以下四个步骤:

  1. 注册一个账号(如果没有的话,可以使用npm adduser在命令行注册,也可以在官网上注册)
  2. 在命令行使用 npm login 登录
  3. 在需要打包发布的目录下初始化一下 npm init (这里会提示让写一些信息,其中有一项就是包名,这里就是为了生成packag.json,以后熟悉了package.json中的内容后,也可以手动创建一个这样的文件来代替这一步的操作)
  4. 发布 , npm publish
    经过以上四个步骤,就可以在npm官网(https://www.npmjs.com/)搜到刚才发布的包了。
    发布一个新的版本
    修改packag.json里的版本号,重新执行 npm publish即可
    使用者更新一个包的版本
    npm update 包名

猜你喜欢

转载自blog.csdn.net/wang740209668/article/details/112344877