您的位置:首页 > 运维架构 > Linux

[Node.js]Linux 快速安装Node.js

2017-10-31 13:00 495 查看

[MySQL]Linux 快速安装 Node.js

在 Linux 操作系统下,快速安装 Node.js

(一)Node.js

  要通过 yum 来安装 nodejs 需要先给 yum 添加 epel 源。

64位:

rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm;[/code] 
32位:

rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm;[/code] 
导入 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 n
cda1
odejs;


(二)Express

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;


(三)Session

1.快速安装。

npm install express-session --save;


2.项目使用。

var session = require('express-session');


(四)Nodemon

1.安装。

npm install -g nodemon;


2.使用方式。

nodemon app.js; #每次我们的js文件修改后,node就会自动重启


(五)Forever

1.安装。

npm install -g forever;


2.使用方式。

forever start 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;i<project.length;i++)
{
if(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;i<project.length;i++)
{
if(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"}


如果遇到警告

文件中未定义的版本libssl.so.10 libssl

npm: symbol SSL_set_cert_cb, version libssl.so.10 not defined in file libssl

解决办法:

yum install openssl;
yum update openssl;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux node.js