赞
踩
// 表示引入http模块
var http = require('http');
/*
request 获取url传过来的信息
response 给浏览器响应信息
*/
http.createServer(function(request, response) {
// 设置响应头
response.writeHead(200, { 'Content-Type': 'text/plain' });
// 表示给页面上面输出一句话并且结束响应
response.end('Hello World');
}).listen(8081); // 端口
console.log('Server running at http://127.0.0.1:8081/');
var http = require('http'); var url = require('url'); http.createServer(function(request, response) { response.writeHead(200, { 'Content-Type': 'text/html;charset="utf-8"' }); response.write("<head> <meta charset='utf-8'> </head>"); console.log(request.url); if (request.url != '/favicon.ico') { var userInfo = url.parse(request.url, true).query; console.log(`姓名:${userInfo.name} -- 年龄:${userI}`); } response.end(); }).listen(8081);
supervisor会不停地watch你应用下面的所有文件,发现有文件被修改,就重新载入程序文件这样就实现了部署,修改了程序文件后马上就能看到变更后的结果。不用再重启代码了。
首先安装supervisor。
npm install supervisor -g //windows
sudo npm install supervisor -g //mac
使用supervisor代替node命令启动应用。
module.exports = xxx;
。npm init --yes
生成package.json文件,package.json中的main代表“入口”。包:Nodejs中除了他自己提供的核心模块外,我们可以自定义模块,也可以使用第三方的模块。Nodejs中第三方模块由包组成,可以通过包来对一组具有相互依赖关系的模块进行统一管理。
完全符合CommonJs规范的包目录一般包含如下这些文件。
在Nodejs中通过npm命令来下载第三方的模块(包)。
NPM介绍:
npm是随同Nodejs一起安装的包管理工具,能解决Nodejs代码部署上的很多问题,使用场景:
npm init --yes
来导入package.json文件。
npm install md5
而是使用npm install md5 --save
我们就可以在package.json文件的dependencies区域发现一段代码:以后我们要将项目发送给别人就只需要发送下面的文件,不需要发送上面的node_modules文件夹,然后通过一句npm i
就会将项目所需要的依赖一个一个安装上。
npm-v
:查看npm版本。npm install Module Name
:安装模块。npm uninstall Module Name
:卸载模块。npm list
:查看当前目录下已安装的node包。npm info 模块
:查看模块的版本。npm install 模块@指定版本
:安装指定版本的包(非常重要)。package.json定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)
npm init 或者 npm init --yes
{ "name": "demo02", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "md5": "^2.3.0", "silly-datetime": "^0.1.2" } "devDependencies": { } }
dependencies与devDependencies之间的区别?
npm install node_module -save
自动更新 dependencies 字段值;npm install node_module -save-dev
自动更新 devDependencies 字段值;^
表示第一位版本号不变,后面两位去最新的。
~
表示前两位不变,最后一个取最新的。
*
表示全部取最新的。
淘宝NPM镜像是一个完整的npmjs.org镜像,你可以用此代替官方版本(只读),同步频率目前为10分钟一次以保证尽量与官方服务同步。
我们可以使用我们定制的cnpm(gzip压缩支持)命令行工具代替默认的npm:
npm install -g cnpm --registry=https://registry.npm.taobao.org
(mac系统加sudo添加权限)之后我们就可以通过cnpm替代npm了。
/* 1. fs.stat 检测是文件还是目录 2. fs.mkdir 创建目录 3. fs.writeFile 创建写入文件 4. fs.appendFile 追加文件 5. fs.readFile 读取文件 6. fs.readdir 读取目录 7. fs.rename 重命名 8. fs.rmdir 删除目录 9. fs.unlink 删除文件 */ const fs = require('fs'); // 1. fs.stat 检测是文件还是目录 // fs.stat('./html', function(err, data) { // if (err) { // console.log(err); // return; // } // console.log(`是文件:${data.isFile()}`); // console.log(`是目录:${data.isDirectory()}`); // }); // 2. fs.mkdir 创建目录 /* path:将创建的目录路径 mode:目录权限(读写权限),默认777 callback:回调,传递异常参数err */ // fs.mkdir('./css', function(err) { // if (err) { // console.log(err); // return; // } // console.log('创建成功'); // }); // 3. fs.writeFile 创建写入文件(如果存在会替换文件) // (path: string | number | Buffer | URL, data: string | Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | ... 5 more ... | DataView, callback: NoParamCallback) // fs.writeFile('./html/index.html', '你好nodejs', (err) => { // if (err) { // console.log(err); // return; // } // console.log('创建写入文件成功'); // }); // 4. fs.appendFile 追加文件 // fs.appendFile('./css/base.css', 'bodu{color: red}', (err) => { // if (err) { // console.log(err); // return; // } // console.log('appendFile 成功'); // }); // fs.appendFile('./css/base.css', 'h2{color: red}', (err) => { // if (err) { // console.log(err); // return; // } // console.log('appendFile 成功'); // }); // 5. fs.readFile 读取文件 // fs.readFile('./html/index.html', (err, data) => { // if (err) { // console.log(err); // return; // } // console.log(data);//<Buffer e4 bd a0 e5 a5 bd 6e 6f 64 65 6a 73> // console.log(data.toString());//你好nodejs // }); // 6. fs.readdir 读取目录 // fs.readdir('./html', (err, data) => { // if (err) { // console.log(err); // return; // } // console.log(data);//[ 'index.html', 'news.html' ] // }); // 7. fs.rename 重命名 功能:1、重命名 2、移动文件 // fs.rename('./css/aaa.css', './css/index.css', (err) => { // if (err) { // console.log(err); // return; // } // console.log('重命名成功'); // }); // fs.rename('./css/index.css', './html/index.css', (err) => { // if (err) { // console.log(err); // return; // } // console.log('移动文件成功'); // }); // 8. fs.rmdir 删除目录 // fs.rmdir('./aaa', (err) => { // if (err) { // console.log(err); // return; // } // console.log('删除目录成功'); // }); // 9. fs.unlink 删除文件 // fs.unlink('./aaa/index.html', (err) => { // if (err) { // console.log(err); // return; // } // console.log("删除文件成功"); // });
这几种方法需要掌握好:
fs.stat 检测是文件还是目录
fs.mkdir 创建目录(下载mkdirp可创建多级目录)
fs.writeFile 创建写入文件
fs.appendFile 追加文件
fs.readFile 读取文件
fs.readdir 读取目录
fs.rename 重命名
fs.rmdir 删除目录
fs.unlink 删除文件
1.let const 模板字符串
2.箭头函数
3.对象、属性的简写
4.模板字符串
5.Promise
/* 1.let const 模板字符串 2.箭头函数 3.对象、属性的简写 4.模板字符串 5.Promise */ // 1.let const 模板字符串 // if (true) { // let a = 123; // } // console.log(a);//a is not defined // 2.箭头函数 // setTimeout(() => { // console.log('执行'); // }, 1000); // 3.对象、属性的简写 // var name = 'Aniu'; // var app = { // name // } // console.log(app.name);//Aniu // var name = 'zhangsan'; // var app = { // name, // run() { // console.log(`${this.name}在跑步`); // } // } // app.run();//zhangsan在跑步 // 4.模板字符串 // var name = '张三'; // var age = 20; // console.log(`${name}的年龄是${age}`);//张三的年龄是20 // 5.Promise // 通过回调函数获取异步方法中的数据 // function getData(callBack) { // setTimeout(function() { // var name = '张三'; // callBack(name); // }, 1000); // } // getData(function(aaa) { // console.log(aaa); // }); // Promise来处理异步 resolve 成功的回调函数 reject失败的回调函数 function getData(resolve, rejest) { setTimeout(function() { var name = '张三李四'; resolve(name); }, 1000); } var p = new Promise(getData); p.then(function(data) { console.log(data); });
// 普通方法 // function test() { // return '您好nodejs'; // } // console.log(test()); // 异步方法 // async function test() { //Promise { '您好nodejs' } // return '您好nodejs'; // } // // console.log(await test());//报错: await必须得用在async的方法里面 // async function main() { // var data = await test(); //获取异步方法里面的数据 // console.log(data); // } // main();//您好nodejs async function test() { return new Promise((resolve, reject) => { setTimeout(function() { var name = "张三 222"; resolve(name); }, 1000); }); } async function main() { var data = await test(); //获取异步方法里面的数据 console.log(data); } main();
const fs = require('fs'); var readStream = fs.createReadStream('./data/input.txt'); var count = 0; var str = ''; readStream.on('data', (data) => { str += data; count++; }); readStream.on('end', () => { console.log(str); console.log(count);//分多次读取,一点一点读取 }); readStream.on('error', (err) => { console.log(err); });
const fs = require('fs'); var str = ''; for (var i = 0; i < 500; i++) { str += '今天是七夕节学布谷鸟叫的人也不一定是好人\n'; } var writeStream = fs.createWriteStream('./data/output.txt'); writeStream.write(str); // 标记写入完成 writeStream.end(); writeStream.on('finish', () => { console.log('写入完成'); });
const fs = require('fs');
var readStream = fs.createReadStream('./kk.png');
var writeStream = fs.createWriteStream('./data/kk.png');
readStream.pipe(writeStream);
适合复制比较大的文件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。