目的
学习node.js重点语法,包括如下,目的:跳过基本的语法学习,进入node.js搭建web服务的重点知识:
- 文件处理--fs模块
- 模块管理
- Express框架
- JXcore打包
fs模块(此模块中所有方法都有同步和异步两种形式)
常用脚本读:
[root@localhost nodejs]# vi test.js
//写入内容
var fs=require('fs'); // 引入fs模块
fs.readFile('./1.txt', function(err, data) {
// 读取文件失败/错误
if (err) {
throw err;
}
// 读取文件成功
console.log(data.toString());
});
[root@localhost nodejs]# vi 1.txt
hello world
[root@localhost nodejs]# node test.js
hello world
写文件:
var fs = require('fs'); // 引入fs模块
// 写入文件内容(如果文件不存在会创建一个文件)
// 传递了追加参数 { 'flag': 'a' }
fs.writeFile('./test2.txt', 'test test', { 'flag': 'a' }, function(err) {
if (err) {
throw err;
}
console.log('Saved.');
// 写入成功后读取测试
fs.readFile('./test2.txt', 'utf-8', function(err, data) {
if (err) {
throw err;
}
console.log(data);
});
});
- 模块管理
模块管理,即不同的js间互相引用,创建对象供别打类使用。
如:
//创建hello.js文件,exports.world发布world方法提供访问服务
[root@localhost nodejs]# vi hello.js
exports.world = function() {
console.log('Hello World');
}
//创建主文件入口,引用hello.js文件,调用对应world方法
[root@localhost nodejs]# vi main.js
var hello=require('./hello');
hello.world();
还有引用方式就是export对象提供入口
//hello.js
function Hello() {
var name;
this.setName = function(thyName) {
name = thyName;
};
this.sayHello = function() {
console.log('Hello ' + name);
};
};
module.exports = Hello;
此时引用就将创建对应对象
var Hello = require('./hello');
//生成对应对象,直接调用对应方法
hello = new Hello();
hello.setName('BYVoid');
hello.sayHello();
Express框架
安装Express
cnpm install express --save
$ cnpm install body-parser --save
$ cnpm install cookie-parser --save
$ cnpm install multer --save
Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具
先用经典的helloWorld来演示下菜鸟的经典例子demo.js
var express = require('express');
var app = express();
// 主页输出 "Hello World"
app.get('/', function (req, res) {
console.log("主页 GET 请求");
res.send('Hello GET');
})
// POST 请求
app.post('/', function (req, res) {
console.log("主页 POST 请求");
res.send('Hello POST');
})
// /del_user 页面响应
app.get('/del_user', function (req, res) {
console.log("/del_user 响应 DELETE 请求");
res.send('删除页面');
})
// /list_user 页面 GET 请求
app.get('/list_user', function (req, res) {
console.log("/list_user GET 请求");
res.send('用户列表页面');
})
// 对页面 abcd, abxcd, ab123cd, 等响应 GET 请求
app.get('/ab*cd', function(req, res) {
console.log("/ab*cd GET 请求");
res.send('正则匹配');
})
//192.168.1.110为我虚拟机ip,此处可以去掉此参数,启动后将显示http://::8081,表示接受此端口所有请求
var server = app.listen(8081, "192.168.1.110",function () {
var host = server.address().address
var port = server.address().port
console.log("应用实例,访问地址为 http://%s:%s", host, port)
})
//执行js
[root@localhost web1]# node demo.js
应用实例,访问地址为 http://192.168.1.110:8081
下面浏览器访问:
我虚拟机ip设置为192.168.1.110,访问端口8081,根据uri匹配,简单的实现了我们的web服务器功能。
JXcore打包
根据环境下载 https://github.com/jxcore/jxcore-release
然后将里面的jx文件拷贝到/usr/local/bin/下
检查版本
[root@localhost bin]# jx --version
v0.10.40
打包命令,server.js作为服务启动入口,即上面的server.js
jx package server.js index
开启web服务
jx server.js
参考文件:
http://www.runoob.com/nodejs/nodejs-tutorial.html
https://github.com/papertiger8848/modelproxy
https://www.cnblogs.com/hexiaobang/p/9590443.html