nodejs的学习和一些命令

来源:互联网 发布:乐多捕鱼源码 编辑:程序博客网 时间:2024/06/03 21:14

nodejs的基础模块学习

创建基础服务

// 导入http模块var http = require('http');// 导入 url模块var url = require('url');// 创建服务var server = http.createServer();// 给server绑定请求事件server.on('request',function(req,res){   res.setHeader('content-type','text/html;charset=utf-8');   res.end('hello world 你好世界!');   var urlStr = req.url;   console.log(urlStr);   var urlObj = url.parse(urlStr,true);    // 第二个参数填true的话 会自动帮我们把url的相关信息转换成对象   console.log(urlObj);   console.log(urlObj.query.name +'---------' + urlObj.query.age);}) ; // 开启服务,监听端口server.listen(8899,'127.0.0.1',function(err){    if(err){        console.log(err);    }        console.info('start success 成功');})

querystring处理get方式数据

// 导入模块const http = require('http');const url = require('url');const querystring = require('querystring');// 创建服务const server = http.createServer();server.on('request', (req, res) => {    const urlString = req.url;    if (!urlString.includes('ico')) {        // const urlObj = url.parse(urlString, true).query;        const urlObj = url.parse(urlString);        const paramsObj = querystring.parse(urlObj.query);        console.info(paramsObj);        res.setHeader('content-type', 'text/plain;charset=utf8')        res.end('响应成功')    }})// 开启服务 监听端口server.listen('3000', '127.0.0.1'); 

querystring模块处理get请求的数据

// 导入模块const http = require('http');const url = require('url');const querystring = require('querystring');// 创建服务const server = http.createServer();server.on('request', (req, res) => {    const urlString = req.url;    if (!urlString.includes('ico')) {        // const urlObj = url.parse(urlString, true).query;        const urlObj = url.parse(urlString);        const paramsObj = querystring.parse(urlObj.query);        console.info(paramsObj);        res.setHeader('content-type', 'text/plain;charset=utf8')        res.end('响应成功')    }})// 开启服务 监听端口server.listen('3000', '127.0.0.1'); 

querystring模块处理post请求的数据

const http = require('http');const querystring = require('querystring');const server = http.createServer();// 创建服务server.on('request',(req,res)=>{    // 服务端获取post方法传过来的数据    // 当数据量较大时,该方法可能会被调用多次,因此我们申明一个变量把每次传过来的数据拼接起来    let body  = '';    req.on('data',(chunk) =>{        body += chunk;    })    // 等所有数据发送完后,再把字符串parse成对象    // res.setheader('content-type','text/plain;charset=utf8');    req.on('end',()=>{        const params = querystring.parse(body);        console.info(params);    })    res.end('响应成功')})// 开启服务,监听端口server.listen('3000','127.0.0.1',(err)=>{    if(err){        console.info(err);    }    console.log('ok');});

path模块和fs模块的使用(主要用来操作文件和问价夹)

// 导入模块var http = require('http');var path = require('path');var fs = require('fs');判断文件是否存在fs.exists(path.join(__dirname,'aaa'),(exists)=>{    if(exists){        console.log("已经存在");    }else{        fs.mkdir(path.join(__dirname,'aaa'),(err)=>{            if(err){                console.log(err);            }            console.log('mkdir ok');        });    }})// // 给文件或文件重命名fs.exists(path.join(__dirname),(exists)=>{    if(exists){        fs.rename(path.join(__dirname,'aaa'),path.join(__dirname,'bbb'),()=>{            if(err){                console.log(err);            }            console.log('重命名成功');        });    }else{        console.log('文件不存在');    }})// 删除文件fs.exists(path.join(__dirname,'bbb'),(exists)=>{    if(exists){        fs.rmdir(path.join(__dirname,'bbb'),(err)=>{            if(err){                console.log(err);            }            console.log('删除成功');        })    }else{        console.log('文件不存在');    }})// 监控文件fs.watchFile(path.join(__dirname,'aaa.txt'),(curr,prev)=>{    console.log(`the surrent mtime is :  ${curr.mtime}`);    console.log(`the previous mtime is : ${prev.mtime}`);})

npm的一些命名使用

npmjs.com 类似于github 有很多开源的第三方包和项目, node_modules 是不会上传到git上去

npm -nint -y 在项目根目录默认生成 package.json配置 (name不能是中文,第一个字母不能大写)

npm xxx –save 和 npm xxx –save -dev的区别

npm xxx --save 生产阶段 (代码上线还需要用到这个包就用 --save)npm xxx --save -dev  开发阶段(代码上线后,不需要用到的包 比如gulp等构建工具 );

node i nodemon -g (全局) 一个自动更新你修改后的文件的第三方包

本地包 和全局包的区别 都要使用npm  i 进行安装本地包:  node i xxx --save/  --save -dev    安装在项目的node_module中全局包: node i xxx -g    安装在node的安装目录或是个人目录 > AppData >  Roaming > npm 使用场景:  本地包是用在项目中的,为我们项目服务的           全局包: 在终端中使用,执行一些指令的

上传自定义模块到npmjs官网

1. npm adduser 会提示让你输入用户名密码和邮箱 (在任何终端里面输入密码都没有提示)2. npm publish 发布3. 升级. 改了代码后,一定要把版本号递增(不能减少)

i18n 国际化语言切换控制的第三方包 (靠路由控制实现切换的)

使用淘宝cnpm 镜像

前提 : 安装nrm包 npm i nrm -gnrm ls 看当前有哪些镜像可用nrm  use +镜像名称   (切换镜像) 

packag.json配置介绍

{  "name": "myaddcalc",  //包的名称,引用时require(myaddcalc)  "version": "1.0.0",  //版本  "description": "这是一段描述内容", //描述   "main": "./lib/add.js",   // 入口js文件  (你写好的主要功能的js)  "scripts": {    "test": "echo \"Error: no test specified\" && exit 1"  },  "keywords": [   // 关键字    "加法",    "描述"  ],  "author": "Monster",  //作者  "license": "ISC"}
原创粉丝点击