nodejs初识
node的作用
- Node可以作为一个工具区使用,通过NPM安装需要的包,然后用Node.JS使用它.
- Node可以做服务器开发.
- Node还可以操作数据库(如MongoDB)并对外提供数据接口.
- Node可以做及时聊天.
- 解决了原生js不支持模块化的问题
node的安装
在官网上下载完安装,并用node -v测试是否安装完成,若出现版本号,则说明安装完成
node的基本使用
1.运用node的方式搭建服务,并用js模板引擎art-template进行页面渲染
//引入http服务
var http = require('http')
//引入文件的方法
var fs = require('fs');
//用art-template模板渲染
var template = require('art-template');
var url = require('url')
http.createServer(function(req, res) {
// url.parse将请求的路径转化为对象
var parseObj = url.parse(req.url, true)
// pathName为请求的路径
var pathName = parseObj.pathname
// var url = req.url
if (pathName == '/') {
fs.readFile('./view/index.html', function(err, data) {
if (err) {
return res.end('出现404的错误')
}
// 使用art-template进行模板渲染
var html = template.render(data.toString(), {
//comments这是一个数组对象
comments: comments
});
res.end(html)
})
} else if (pathName == '/post') {
fs.readFile('./view/post.html', function(err, data) {
if (err) {
return res.end('出现404的错误')
}
res.end(data)
})
} else if (pathName == "/pinglun") {
var getmessage = parseObj.query
comments.push(getmessage)
// 当提交表单时,请求码为302时,重新设置请求头
res.statusCode = 302
res.setHeader('location', "/")
res.end()
} else if (pathName.indexOf("/public/") === 0) {
//处理静态文件/public/
console.log(url); //打印出来的时/public/css/css.css/
fs.readFile('.' + pathName, function(err, data) {
if (err) {
return res.end('出现404的错误')
}
res.end(data)
})
} else {
fs.readFile('./view/404.html', function(err, data) {
if (err) {
return res.end('出现404的错误')
}
res.end(data)
})
}
})
.listen(3000, 'localhost', function() {
console.log("监听的是3000的端口")
})
nodejs的模块化
- 什么是npm?
- npm 是一个网站,这个网站上托管了几十万个使用 JavaScript 开发的功能模块库
- npm 是一个基于Node开发的一个终端命令行包管理工具
- 只要安装了 node 就有了 npm。通过 npm -v 测试是否有 npm 工具
- 通过 npm install
包名下载到当前项目中的根目录, - 在代码中通过 require('第三方包名') 使用你下载的包
通过 npm install 包名 安装的包会自动下载到当前目录下的 node_modules 目录, 如果该目录不存在,则直接创建,如果已存在,则直接将文件下载进去。
- 使用 Npm 安装全局命令行工具
- 在 npm 社区中,除了有可以在项目中使用的第三方包之外,还有一些特殊的包: 这些特殊的包被称之为命令行工具,不是用于项目的,而是可以安装到计算机中, 然后通过命令行中的命令的形式来使用,这种工具有很多,例如:http-server、gulp、 browser-sync、nodemon 等等等等很多
- 安装方式:
npm install --global 第三方命令行工具名字
- node的核心模块
| 核心模块名 | 作用 |
|---|---|
| fs | 文件操作 |
| http | 网络操作模块 |
| net | 更底层的网络操作模块 |
| os | 操作系统相关 |
| path | 文件路径操作相关 |
| querystring | 查询字符串处理 |
| url | url操作处理 |
- node中的模块化
- 模块天生就是一个私有的作用域,默认模块内定义的变量等成员只能被模块内部访问
- 每一个模块中都有一个
module.exports编程接口对象,默认是一个空对象。可以通过此方法添加成员向外暴露内部成员 require方法可以用来加载模块,该方法是同步加载执行的,主要做两件事儿(加载模块中的代码)(拿到被加载的module.exports中的对象)
总结
- 简单的说 Node.js 就是运行在服务端的 JavaScript
- Node开发就是利用 Ecmascript + 第三方开源库 + Node平台环境API进行编程