在 Linux 操作系统下,快速安装 Node.js
要通过 yum 来安装 nodejs 需要先给 yum 添加 epel 源。
64位:
rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm;
32位:
rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm;
导入 key:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6;
添加 remi 源:
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm;
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi;
下载源:
curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -;
安装:
yum -y install nodejs;
1.快速安装。
npm install -g express-generator; #需先安装express-generator
npm install -g express;
express --version; #验证是否安装成功
2.创建项目。
express DemoApp; # express的默认模版采用jade,若需要ejs模版支持,加上-e选项,即 express -e DemoApp
cd DemoApp;
3.运行项目。
npm install; #需要等待一段时间,因为需要获取很多的库文件
npm start;
node app;
1.快速安装。
npm install express-session --save;
2.项目使用。
var session = require('express-session');
1.安装。
npm install -g nodemon;
2.使用方式。
nodemon app.js; #每次我们的js文件修改后,node就会自动重启
1.安装。
npm install -g forever;
2.使用方式。
forever start -a -l forever.log app.js; #后台一直运行,不挂断
app.js
一个简单的node.js,其 get【ip:8888】 , post【ip:8888/getUrl?url=xxx】 方法访问路径
var fs=require('fs');
var path = require("path");
var express = require('express');
var session = require('express-session');
var bodyParser = require('body-parser');
var app = express();
// 创建 application/x-www-form-urlencoded 编码解析
var urlencodedParser = bodyParser.urlencoded({ extended: false })
//提供静态文件服务,这样就能找到你的`kehuduan.js`文件
app.use(express.static(__dirname));
app.use(session({
secret: 'hubwiz app', //secret的值建议使用随机字符串
cookie: {maxAge: 60 * 1000 * 30} // 过期时间(毫秒)
}));
//登录拦截器
app.use(function (req, res, next) {
var url = req.originalUrl;
if (url != "/login") {
if (url != "/logining" && !req.session.sign) {
return res.sendfile("project/login.html");
}
}
//console.log("应用实例,访问地址为 http://%s:%s", req.originalUrl, req.session.sign)
next();
});
//默认输出
app.get('/', function (req, res) {
res.send('Hello World');
})
app.get('/getUrl', function (req, res) {
// 读取 .json 文件
var project = JSON.parse(fs.readFileSync(path.join(__dirname,'project.json'), 'utf8'));
// 输出 JSON 格式
var response = {
"type":1,
"status":0,
"url":"http://83337.com",
"success":false
};
// 获取 type 参数
var type = req.query.type;
// 给 response 赋值
for(var i=0;iif(type == project[i].type)
{
response.type = project[i].type;
response.status = project[i].status;
response.url = project[i].url;
response.success = true;
}
}
//输出 JSON
res.end(JSON.stringify(response));
})
app.get('/login', function (req, res) {
//跳转登录页面
res.sendfile("project/login.html");
})
app.post('/logining', urlencodedParser, function (req, res) {
// 输出 JSON 格式
var response = {
"msg":"账号或密码错误",
"success":false
};
// 获取 username 参数
var username = req.body.username;
// 获取 password 参数
var password = req.body.password;
//读取 .json 文件
var user = JSON.parse(fs.readFileSync(path.join(__dirname,'user.json'), 'utf8'));
if(username == user.username && password == user.password)
{
response.msg = "登录成功";
response.success = true;
req.session.sign = true;
}
res.end(JSON.stringify(response));
})
app.get('/updatePassword', function (req, res) {
//跳转登录页面
res.sendfile("project/update.html");
})
app.post('/updatePasswording', urlencodedParser, function (req, res) {
// 输出 JSON 格式
var response = {
"msg":"旧密码错误",
"success":false
};
// 获取 oldpassword 参数
var oldpassword = req.body.oldpassword;
// 获取 password 参数
var password = req.body.password;
//读取 .json 文件
var user = JSON.parse(fs.readFileSync(path.join(__dirname,'user.json'), 'utf8'));
if(oldpassword == user.password){
response.msg = "修改成功";
user.password = password;
response.success = true;
req.session.sign = false;
//写入 .json 文件
fs.writeFileSync(path.join(__dirname,'user.json'),JSON.stringify(user));
}
res.end(JSON.stringify(response));
})
app.get('/updUrl', function (req, res) {
//跳转修改页面
res.sendfile("project/index.html");
})
app.post('/saveUrl', urlencodedParser, function (req, res) {
//参数获取方式
//req.params.id, ex: /user/:id
//req.query.id, ex: ?id=12
//req.body.id, ex: id=
var success = false;
//读取 .json 文件
var project = JSON.parse(fs.readFileSync(path.join(__dirname,'project.json'), 'utf8'));
// 获取 type 参数
var type = req.body.type;
// 给 .json 重新赋值
for(var i=0;iif(type == project[i].type)
{
project[i].type = parseInt(req.body.type);
project[i].status = parseInt(req.body.status);
project[i].url = req.body.url;
continue;
}
}
//写入 .json 文件
fs.writeFileSync(path.join(__dirname,'project.json'),JSON.stringify(project));
success = true;
res.end(JSON.stringify({"success":success}));
})
var server = app.listen(8888, function () {
var host = server.address().address
var port = server.address().port
console.log("应用实例,访问地址为 http://%s:%s", host, port)
})
project.json
[{"type":1,"status":0,"url":"http://hao123.com"}]
user.json
{"username":"admin","password":"admin"}
如果遇到警告
npm: symbol SSL_set_cert_cb, version libssl.so.10 not defined in file libssl
解决办法:
yum install openssl;
yum update openssl;