node.js的多版本安装,模块化导出导入以及node实现服务器的功能
2020-06-04 05:08
591 查看
node的使用
node多版本安装方式:
- 卸载已有的node.js
- 下载nvm
- 在c盘下创建目录dev,dev里面创建两个子目录nodejs和nvm;把下载的nvm包解压到dev中的nvm包里,此时你会看到此包有一个install.cmd,右击以管理员身份运行,直接回车,生成一个文件,另存为setting.txt到当前目录,打开此文件修改里面的root:nvm的目录路径(C:\dev\nvm)和path:path的目录路径(c:\dev\nodejs)
- 配置nvm和node的环境变量 系统属性下->高级设置->环境变量->新建NVM_HOME(属性值为nvm的文件目录路径C:\dev\nvm)->新建NVM_SYMLINK(属性值为nodejs的文件目录路径c:\dev\nodejs)->打开path,向里面添加%NVM_HOME%;%NVM_SYMLINK%;
- nvm常用的命令 nvm list 查看当前安装的node所有的版本
- nvm install node版本号 安装指定版本的node
- nvm uninstall node版本号 卸载指定版本的node
- nvm use node版本号 选择指定版本的node
node模块化开发(commonJS)
- 非模块化开发的缺点:命名冲突/文件依赖
- 模块化相关规则 如何定义模块:一个js文件就是一个模块,模块内部的成员都是相互独立的
- 模块成员的导出和引入
自定义模块
模块导出和引入的第一种方式(常用)
- 1.js (导出)
var sum = function(a,b){ return parseInt(a)+parseInt(b); } //导出模块成员 exports.sum=sum;
- 2.js (引入)
var module = require('./1.js'); console.log(module.sum(12,13));
模块导出和引入的第二种方式
- 1.js (导出)
var sum = function(a,b){ return parseInt(a)+parseInt(b); } //导出模块成员 module.exports=sum;
- 2.js (引入)
var module = require('./1.js'); console.log(module(12,13));
模块导出和引入的第三种方式
- 1.js (导出)
var flag = 123; global.flag =flag;
- 2.js (引入)
require('./1.js'); console.log(global.falg);
系统核心模块
- fs 文件操作
- http 网络操作
- path 路径操作
- querystring 查看参数解析
- url url解析
node初步实现服务器的功能
const http = require('http') let server = http.createServer(); server.on('request',(req,res)=>{ res.end('hello'); }); server.listen(3000,function(){ console.log('服务器已启动...'); });
- 简写形式
http.createServer((req,res)=>{ res.end('hello'); }).listen(3000,()=>{ console.log('服务器已启动...'); })
node实现静态资源服务器的实现
node.js处理请求路径的分发
const http = require('http') http.createServer((req,res)=>{ if(req.url.startsWith('/index')){ res.write('hello'); res.end("ok"); }else if(req.url.startsWith('/about')){ res.end('about'); }else{ res.end('no content'); } }).listen(3000,()=>{ console.log('服务器已启动...') })
node响应完整的页面
const http = require('http') const path = require('path') const fs = require('fs') http.createServer((req,res)=>{ fs.readFile(path.join(__dirname,'req.url'),(err,fileContent)=>{ if(err){ res.writeHead(404,{"content-Type":'text/plain;charset:utf8'}); res.end("页面丢失了"); }else{ res.end(fileContent); } }) }).listen(3000,()=>{ console.log('服务器已启动...') })
node实现动态资源服务器的实现
get参数处理
使用url.parse.query的方式获取get请求参数
- 编写处理针对http://localhost:3000?username=‘zs’&&password=123这个get请求路径处理参数
const http = require('http') const url = require('url') http.createServer((req,res)=>{ let obj = url.parse(req.url,true);//此处的第二个参数的true表示将query的内容转化为对象 res.end(obj.query.username+"=============="+obj.query.password) }).listen(3000,()=>{ console.log('服务器已启动...'); })
post参数处理
使用querystring.parse的方式将参数数据转为对象,进而处理
const http = require('http') const querystring = require('querystring') http.createServer((req,res)=>{ if(req.url.startsWith('/login')){ let pdata=''; req.on('data',(chunk)={//数据读取部分触发的事件 pdata +=chunk; }) req.on('end',()=>{//数据处理完成之后触发的事件 let obj = querystring.parse(pdata);//将数据转化为对象 res.end(obj.username+"======"+obj.password); }); } }).listen(3000,()=>{ console.log('服务器已启动...'); })
- 实现一个登录功能的服务器端的案例代码
- 服务器端代码如下
const http = require('http') const url = require('url') const querystring = require('querystring') http.createServer((req,res)=>{ if(req.url.startsWith('/login')){ if(url.method == 'GET'){ let param = url.parse(req.url,true).query; if(param.username == 'admin' &¶m.password == '123'){ res.end('GET success'); }else{ res.end('GET fail'); } } if(url.methos == 'POST'){ let pdata=''; req.on('data',(chunk)={//数据读取部分触发的事件 pdata +=chunk; }) req.on('end',()=>{//数据处理完成之后触发的事件 let obj = querystring.parse(pdata);//将数据转化为对象 if(obj.username =='admin' && obj.password == '123'){ res.end('post success'); }else{ res.end('post fail'); } }); } } }).listen(3000,()=>{ console.log('服务器已启动...'); })
- 页面代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action='http://loaclhost:3000/login' method='post'> 用户名:<input type="text" name="username"><br/> 密 码:<input type="password" name="password"><br/> <input type="submit" name="提交"> </form> </body> </html>
相关文章推荐
- node.js学习笔记——学生信息管理的实现(把功能模块化)使用官方提供的http模块实现
- node.js零基础详细教程(6):mongodb数据库操作 以及导入导出
- Node.js——动态WEB服务器——实现注册功能
- java利用POI实现Excel导入导出详解-支持97-2013版本以及2017版本
- Node.js实现android的apk版本更新服务器
- node.js使用(五):网站访问、搭建服务器及留言功能的实现
- 5丶electron-vue安装js-xlsx,实现Excel导入导出
- 纯前端利用 js-xlsx 实现 Excel 文件导入导出功能示例
- 手把手安装部署SCOM 2007R2(五)SCOM服务器导入导出功能 推荐
- 服务器不安装Excel,实现导出Excel功能
- JavaScript进阶(八)JS实现图片预览并导入服务器功能
- [bigdata-107] node.js的安装并实现一个运营商报告的提交功能
- 腾讯云(ubuntu)下安装 nodejs + 实现 Nginx 反向代理服务器
- 纯前端利用 js-xlsx 实现 Excel 文件导入导出功能示例
- 纯前端利用 js-xlsx 实现 Excel 文件导入导出功能示例
- 如何彻底删除node.js以及node.js安装教程(基于Centos其他linux版本可以类推 )
- 使用Node.js结合webpack导入Vue,并使用webpack-dev-server实现虚拟服务器自动打包刷新
- [将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
- Sql Server 2005 Express数据库导入导出功能的实现
- 如何在Ubuntu上安装最新版本的Node.js