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

[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;

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;

(二)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 -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"}

如果遇到警告

  • 文件中未定义的版本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,linux,node.js)