nodejs 整合kindEditor实现图片上传
kindEditor官网上中提供了ASP,ASP.NET,JSP相关的整合应用,http://kindeditor.net/docs/upload.html可以参照实现nodejs的整合,发现实用nodejs更简单
环境:
unbuntu 14.10
nodejs 0.10.35
express 4.11.2
formidable 1.0.16
kindEditor 4.1.10
webStorm 8
1.通过IDE或终端创建一个名称为test的工程
2.编辑package.json添加formidable依赖,这里使用的是1.0.16版本,之后通过终端执行npm install完成依赖的安装
3.将kindEditor整个目录放到test/public/lib下
4.修改index.ejs和index.js文件
index.ejs中整合kindEditor:
设置kindEditor的uploadJson为nodejs所提供的处理图片上传的路由url这里用的是/uploadImg
index.js中添加处理图片上传的路由url:
添加/uploadImg对应的post处理方式,
代码如下:
index.js
<!DOCTYPE html> <html> <head> <title><%= title %></title> <link rel='stylesheet' href='/stylesheets/style.css' /> <script charset="utf-8" src="/lib/kindeditor-4.1.10/kindeditor.js"></script> <script charset="utf-8" src="/lib/kindeditor-4.1.10/lang/zh_CN.js"></script> <script> var options = { uploadJson: '/uploadImg' }; KindEditor.ready(function(K) { window.editor = K.create('#editor', options); }); </script> </head> <body> <h1><%= title %></h1> <textarea id="editor" name="content" style="width:700px;height:300px;"> <strong>HTML内容</strong> </textarea> </body> </html>
index.js
var express = require('express'); var router = express.Router(); var formidable = require('formidable'); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: '图片上传' }); }); router.post('/uploadImg', function(req, res, next) { var form = new formidable.IncomingForm(); form.keepExtensions = true; form.uploadDir = __dirname + '/../public/upload'; form.parse(req, function (err, fields, files) { if (err) { throw err; } var image = files.imgFile; var path = image.path; path = path.replace('/\/g', '/'); var url = '/upload' + path.substr(path.lastIndexOf('/'), path.length); var info = { "error": 0, "url": url }; res.send(info); }); }); module.exports = router;
之后通过IDE或终端启动test工程,通过http://localhost:3000访问页面就可以上传图片了
Node.js node-schedule定时任务隔多少分钟执行一次的方法
在Node.js中,我使用node-schedule来执行定时任务。Cron-style的时间格式对于初学者不太直观,所以一般使用这种方式:比如官方示例中的每个小时的42分执行
Node.js中的缓冲与流模块详细介绍
缓冲(buffer)模块js起初就是为浏览器而设计的,所以能很好的处理unicode编码的字符串,但不能很好的处理二进制数据。这是Node.js的一个问题,因为Node
Node.js抓取中文网页乱码问题和解决方法
Node.js抓取非utf-8的中文网页时会出现乱码问题,比如网易的首页编码是gb2312,抓取时会出现乱码varrequest=require('request')varurl='http://www.163.com'request(url,functi