nodejs学习(一)
2018-03-30 16:40:06
538
0
工作交接之余,搞点时间看看书,本来是看js的,又不想用eclipse启动web服务,想起nodejs也是可以起web服务器吗,于是捣鼓一二,自己记录以免忘记.
nodejs 简单使用
使用vscode, npm,nodejs.
安装不表.
智能提示用 @types,,配套的body-parser,multer等
npm install -g express
npm install -g body-parser
npm install -g multer
npm install -g supervisor
npm install @types/express
启动简单http服务器.
vim server.js
启动node服务器 node server.js
自动监听重启服务
supervisor --hamony server.js
静态目录资源加载
express().use(express.static("mulu")) 加载静态资源目录,简单的web服务器启动
multer.array('name') 解析文件上传
文件操作
fs.readFile/fs.writeFile 文件操作
response.writeHead/response.sendFile/response.end
var express = require("express");
var app = express();
var fs = require("fs");
var bodyParser = require("body-parser");
var multer = require("multer");
app.use(express.static("public"));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(multer({ dest: '/tmp' }).array('file'));
//sendFile
app.get("/menu", function (req, res) {
//res.send("hello !");
var path = __dirname + "/public/index.html";
console.log(path)
res.sendFile(path);
});
//post upload
app.post('/file_upload', function (req, res) {
console.log(req.files[0]);
var dest_file = __dirname + '/tmp/' + req.files[0].originalname;
var response={};
fs.readFile(req.files[0].path, function (err, data) {
fs.writeFile(dest_file, data, function (err) {
if (err) {
console.log(err);
}
else{
response={
message:'upload ok!',
filename:req.files[0].originalname
}
}
console.log(response);
res.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});//设置response编码为utf-8
res.end(JSON.stringify(response));
});
});
});
var server = app.listen(8081, function () {
var host = server.address().address;
var port = server.address().port;
console.log("server started " + host + ":" + port);
});
javascript精粹
顺便记录下javascript精粹中的一些东西,权当学习笔记了
prototype原型
for in 遍历对象的所有属性包括prototype原型中的属性
hasOwnProperty检测对象自己是否包含相关属性(不包括原型)
对象中的同名属性覆盖原型同名属性/delete 对象属性后,原型同名方法重新起作用
var obj = {};
obj.a1 = 'a1';
obj.f1 = function () {
alert(111);
}
Object.prototype.f2 = function () {
alert('property');
}
Object.prototype.name = "obj";
obj.name = "my obj";
for (name in obj) {
// if(typeof obj[name]!=='function'){
if (obj.hasOwnProperty(name))
document.writeln(name + '[own]:' + obj[name] + "<br>");
else
document.writeln(name + ':' + obj[name] + "<br>");
// }
}
原型方法简化
Function.prototype.method = function (name, func) {
if (!this.prototype[name])
this.prototype[name] = func;
return this;
}
String.method('trim', function () {
return this.replace(/^\s+|\s+$/g, '');
});
document.writeln(" sdtest ".trim() + "<br>");
2018-09-13 16:15:12
1
赞
赏
本文基于CC BY-NC-ND 4.0 许可协议发布,作者:野生的喵喵。 固定链接: 【nodejs学习(一)】 转载请注明
相关文章:
发表新的评论
文章分类
文章归档
标签
deb ,
,
蓝屏 ,
select ,
html5 ,
tomcat ,
gcc ,
ajax ,
apt-get update ,
选择 ,
js加密 ,
java ,
工作 ,
ocr ,
AngularJs ,
感慨 ,
work ,
click ,
javascript ,
反向代理 ,
ip查询 ,
空间查询 ,
word ,
ECS服务器 ,
centos ,
杂 ,
StartupWMClass ,
前端 ,
js ,
vmdk ,
感概 ,
select2 ,
virtualbox ,
gg代理 ,
share ,
seo ,
风筝 ,
email ,
ASR ,
转换 ,
cool ,
activiti-ui ,
喵小凡 ,
@PropertySource ,
ckeiditor ,
网站攻击 ,
SRILM ,
风景 ,
plugin ,
vdi ,
扩容 ,
chorme ,
阿里云 ,
KALDI ,
num ,
packer2 ,
pic ,
gg镜像 ,
win8.1 ,
ecs ,
mysql ,
Ubuntu ,
快递查询 ,
nginx ,
ubuntu ,
swap ,
maven ,
entropy_avail ,
tencent ,
语音识别 ,
prerender ,
xfce4 ,
进度条 ,
存储过程 ,
activiti ,
熵 ,
日出 ,
练笔 ,
虞美人 ,
nodejs ,
词 ,
demo ,
jquery ,
random ,
linux ,
cat ,
bootstrapValidator ,
angularJs ,
live ,
on ,
gg ,
雪 ,
婚姻 ,
景色 ,
@Autowired ,
pdf ,
emqttd ,
优化 ,
thchs30 ,
opencv ,