关于Node.js的Web框架的应用及并发性能测试(3)

咱们再用node.js写个小功能,作为运维能用到的小功能,通过node.js调用linu命令。
在nodejs的child_process模块中,有两个类似的方法spawn和exec,都是通过生成一个子进程,去执行指定的命令,不过他们的用法稍有不同,在命令的指定上,exec相对灵活,等于一个shell的命令行,如'ps -ef | grep node'此类的管道操作也能一次性实现。

var cp = require('child_process');
  //这里写你要执行的命令
  var ls = cp.spawn('ls'/*command*/, ['-lh', '/usr']/*args*/, {}/*options, [optional]*/);
  ls.stdout.on('data', function (data) {
    console.log('stdout: ' + data);
  });
  ls.stderr.on('data', function (data) {
    console.log('stderr: ' + data);
  });
  ls.on('exit', function (code) {
    console.log('child process exited with code ' + code);
  });

<a href=关于Node.js的Web框架的应用及并发性能测试" />

通过url输出调用。大家通过spawn可以在页面调用linux命令了。

curl :3000/xiaorui

<a href=关于Node.js的Web框架的应用及并发性能测试" src="https://www.linuxidc.com/upload/2013_09/130924063748351.jpg" />

我们在搞一个对于实时系统常用的nosql在node.js里面的运用:
看官方的文档吧,里面demo还是不少的:
里面的实例还是不少的!!!

var redis = require("redis"),
    client = redis.createClient();
client.on("error", function (err) {
    console.log("Error " + err);
});
client.set("a", "xiaorui.cc", redis.print);
client.hset("hash key", "hashtest 1", "some value", redis.print);
client.hset(["hash key", "hashtest 2", "some other value"], redis.print);
client.hkeys("hash key", function (err, replies) {
    console.log(replies.length + " replies:");
    replies.forEach(function (reply, i) {
        console.log("    " + i + ": " + reply);
    });
    client.quit();
});

过两天给大家出一个 node.js websocket的实时监控~
两套方案: redis node.js 和webscoket node.js
源地址
在开始聊这次的主题 web 框架
node.js最牛的框架【之一】 express本身就是一个很好的mvc 模型 ~~~

看着样子,又有点django的样子了哈~

var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);
app.use(require('stylus').middleware(__dirname + '/public'));
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
}
app.get('/', routes.index);
app.get('/users', user.list);
app.all('/jieshou', function(req, res) {
        console.log(req.body.user);
        res.send('11');
});
http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1f2cf628664c94270974960ef3920758.html