Node.js入门教程——如何实现文件上传功能

  作者:zhanhailiang 日期:2014-11-16

本文将介绍如何使用Node.js实现文件上传功能。

1. 初始化项目信息:npm init

[root@~/wade/nodejs/nodejs-upload-image-demo]# npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sane defaults.
 
See `npm help json` for definitive documentation on these fields
and exactly what they do.
 
Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.
 
Press ^C at any time to quit.
name: (nodejs-upload-image-demo) 
version: (1.0.0) 
description: how to use node.js to upload an image
entry point: (index.js) 
test command: 
git repository: (https://github.com/billfeller/nodejs-upload-image-demo.git) 
keywords: 
author: billfeller
license: (ISC) MIT
About to write to /root/wade/nodejs/nodejs-upload-image-demo/package.json:
 
{
  "name": "nodejs-upload-image-demo",
  "version": "1.0.0",
  "description": "how to use node.js to upload an image",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/billfeller/nodejs-upload-image-demo.git"
  },
  "author": "billfeller",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/billfeller/nodejs-upload-image-demo/issues"
  },
  "homepage": "https://github.com/billfeller/nodejs-upload-image-demo"
}
 
 
Is this ok? (yes) yes

2. 修改package.json,配置启动命令:

"scripts": { 
    "start": "node index.js" 
},

3. 安装依赖模块:npm install formidable –save

4. 功能实现:

  • index.js——统一入口,包括请求处理器注册;
  • server.js——服务器模块,包括服务器创建,监听请求,执行路由策略;
  • router.js——路由策略,根据请求url路由到相应的处理器进行请求处理;
  • requestHandler.js——请求处理器;
  完整源码请见:https://github.com/billfeller/nodejs-upload-image-demo

5. 启动服务器:

[root@~/wade/nodejs/nodejs-upload-image-demo]# npm start
 
> nodejs-upload-image-demo@1.0.0 start /root/wade/nodejs/nodejs-upload-image-demo
> node index.js
 
server is starting

6. 通过浏览器访问并上传图片:


6. 参考:

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。