安装nodejs + 最基础的代码
Centos系统下安装。
1.//获取nodejs的安装包。
wget https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-x64.tar.xz
2.解压
tar xf node-v10.9.0-linux-x64.tar.xz //解压
3. 安装【即将命令软连接到bin文件夹】
ln -s /var/www/node/node-v10.9.0-linux-x64/bin/npm /usr/bin/npm
ln -s /var/www/node/node-v10.9.0-linux-x64/bin/node /usr/bin/node
4.查看node版本
node -v
5.安装express body-parser cookie-parser multer等
npm install express --save
6.查看node版本
node -v
7.编写nodejs的代码【文件后缀为js】
....
...
8.运行nodejs服务器
node *****.js
对于nodejs做服务器程序的一些说明。参考w3c菜鸟教程。
如果我们使用PHP来编写后端的代码时,需要Apache 或者 Nginx 的HTTP 服务器,并配上 mod_php5 模块和php-cgi。
从这个角度看,整个"接收 HTTP 请求并提供 Web 页面"的需求根本不需 要 PHP 来处理。
不过对 Node.js 来说,概念完全不一样了。使用 Node.js 时,我们不仅仅 在实现一个应用,同时还实现了整个 HTTP 服务器。事实上,我们的 Web 应用以及对应的 Web 服务器基本上是一样的。
在我们创建 Node.js 第一个 "Hello, World!" 应用前,让我们先了解下 Node.js 应用是由哪几部分组成的:
-
引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。
-
创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
-
接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据
以下是最基本功能的代码
var http = require('http');//建立http服务器
var url = require('url');
var util = require('util');
var querystring = require('querystring');//在不使用express的情况下,用queryString获取body(或url中的参数)数据
var express = require('express');//express框架
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');//post请求,解析body数据
var multer = require('multer');//上传文件
var app = express();
var fs = require("fs");//文件系统,读写文件(夹)
var path = require("path")//文件路径库
// 创建 application/x-www-form-urlencoded 编码解析
var urlencodedParser = bodyParser.urlencoded({ extended: false })
app.use(cookieParser())
//静待文件绑定
//eg. 访问/frontpage/index.html咋会访问../html/frontpage下的indexhtml
app.use('/frontpage/', express.static('../html/frontpage'));
app.use('/', express.static('../html/frontpage'));
app.use('/m/', express.static('../html/m'));
app.use('/Galaxy/', express.static('../html/Galaxy'));
app.use(multer({ dest: 'tmp/'}).array('image'));//设置上传文件的临时文件夹
//get 请求
app.get('/demo',(req,res)=>{
DealReq(req)
//此处证明nodejs是单进程。不断调用次函数,以此等待执行
let beginTime = new Date().getTime();
while(1){
let endTime = new Date().getTime();
if(endTime - beginTime > 3000){
break;
}
}
// 输出 JSON 格式
var response = {
"first_name":req.query.first_name,
"last_name":req.query.last_name
};
console.log(util.inspect(response))
res.json(response)
})
//post 请求
app.post('/demo', urlencodedParser, function (req, res) {
DealReq(req)
console.log(__dirname)
// 输出 JSON 格式
var response = {
"first_name":req.body.first_name,
"last_name":req.body.last_name
};
console.log(util.inspect(response))
res.json(response)
})
//上传文件
app.post('/file_upload', function (req, res) {
console.log(req.files[0]); // 上传的文件信息
let ext = path.extname(req.files[0].originalname)||".jpg";
let date = new Date();
let year = date.getFullYear();
let month = date.getMonth()+1;
let day = date.getDate();
let hour = date.getHours();
let minute = date.getMinutes();
let second = date.getSeconds();
let timeString = ""+year+"_"+month+"_"+day+"_"+hour+"_"+minute+"_"+second+"_"
//新建文件夹
if(!fs.existsSync("../html/storage2")){
fs.mkdirSync("../html/storage2","0777")
}
let pathName = "../html/storage2/"+year+month
if(!fs.existsSync(pathName)){
fs.mkdirSync(pathName,"0777")
}
//
let fileName = ""+timeString+Math.ceil(Math.random()*10000000000000) + ext
var des_file = "" + pathName + "/" + fileName
fs.readFile( req.files[0].path, function (err, data) {
let response = {"status":-1,"message":"fail...","data":des_file};
fs.writeFile(des_file, data, function (err) {
if( err ){
conssole.log("upload file error...");console.log( err );
response.message = "upload fail"
}else{
response.status = 0;
response.message = "success";
}
console.log( response );
res.json(response);
});
});
})
function DealReq(req){
console.log(">>>>>>>>>>>>>>>>>>>>>>>>>>")
console.log("method:"+req.method)
console.log("path :"+req.path)
console.log("param :"+util.inspect(req.query))
console.log("Cookies: " + util.inspect(req.cookies));
console.log("data :"+util.inspect(req.body))
}
//建立服务器
var server = app.listen(8082, function () {
var host = server.address().address
var port = server.address().port
console.log("http://%s:%s...................", host, port)
})

浙公网安备 33010602011771号