nodejs理解
一、nodejs介绍
nodejs主要体现在事件机制和异步IO,nodejs是事件驱动的;
nodejs作用:js的运行环境、操作文件、链接数据库;
nodejs在执行js是单线程的,但不是nodejs是单线程的;
可以写一些小工具,聊天室,爬虫
检测node是否安装成功: 命令行-node -v 出现node的版本号就是安装成功了
编辑器:还是推荐vsCode
二、模块
1.模块化
module.export 导出
reuqire 导入
module.js var a=require('./app').a; console.log(require('./app')) var c=1+a; console.log(c) app.js var a=1; module.exports={ a:a };
2.事件
events
引入events 创建事件 绑定事件 触发事件
const EventEmitter = require('events');//引入事件 class MyEmitter extends EventEmitter {}//继承事件 const myEmitter = new MyEmitter();//创建类 myEmitter.on('event', () => {//绑定事件 console.log('触发事件'); }); myEmitter.emit('event');//出发事件
3.读写文件
引入fs
读写文件这里面函数会区分同步和异步
同步是一步一步执行的,按照代码的顺序来的,后面等
异步是会在执行其他的代码,等到代码执行完成之后,在执行回调函数的里面的代码
var fs=require('fs'); fs.writeFile('demo.txt','数据','utf8',function(){ }) fs.mkdir(__dirname+'/demo',function(){ var stream=fs.ReadStream('demo.txt',{highWaterMark:64}) console.log(stream) fs.writeFile(__dirname+'/demo/'+'demo1.txt',stream,function(){ }) })
4.流
stream
标准输入 标准输出
对http请求的处理也是流,响应流 请求流
所有流都可以做成事件处理
应用:处理数据、提高性能(流可以将大文件数据放到一段一段的buffer中)
管道
pipe
5.web服务器
http
输出txt文本;text/txt
输出json数据;application/json
输出html文件;text/plain; 可以利用管道
6.util 实用工具
nodejs内置的一些api工具
7.http建立服务器
可以通过http模块建一个一个服务器
8.path路径操作
对当前项目一些路径进行操作
9.url
处理和解析获取到的URL
三、资料
官网 :https://nodejs.org/en/
中文官网:http://nodejs.cn/
四、注意
1.node热更新
supervisor
首先需要使用 npm 安装 supervisor(这里需要注意一点,supervisor必须安装到全局)
$ npm install -g supervisor
Linux 或 Mac用户需要使用管理员权限
sudo npm install -g supervisor
安装完成后就可以用supervisor启动服务了(假设你的Node.js程序主入口是app.js)
$ supervisor app.js
命令行窗口会显示启动成功信息,并开始代码监听,当代码被修改之后,运行的脚本会被终止,自动重新启动。
PS: express 4.x把用于项目启动的代码移到了./bin/www的文件,如需使用supervisor 启动express项目请使用下面的命令
supervisor bin/www
2.mysql
(1)、 'Incorrect string value: \'\\xE5\\xBC\\x80\\xE5\\xA7\\x8B...\' for column \'topoData\' at row 1',
因为字段的值中包含中文,但是你设置的字段里面不是utf-8的