node.js实现上传文件功能


Posted in Javascript onJuly 15, 2019

本文实例为大家分享了node.js上传文件的具体代码,供大家参考,具体内容如下

最近刚开始弄nond,写得不好见谅,有什么错误请指出:

首先安装node,安装步骤

这里以上传图片为例:

1、在该文件夹下生成package.json文件:

在本文件夹下打开命令行窗口(window系统,进入该文件夹按住shift然后点击鼠标右键,就可以直接选择在本文件夹中打开命令行窗口)输入:npm init

然后等有提示出来,一路Enter(懂的请无视,不懂且不想懂的一路Enter就是了),然后你就可以发现文件夹下有一个package.json文件,下面是刚生成的package.json文件内容

node.js实现上传文件功能

这里因为要用到multer、express、fs模板,所以要安装模块,fs不需要安装,可以直接引用:

安装multer:npm install multer --save

安装express:npm install express --save

然后你会发现你的文件夹下会多出一个node_modules文件,package.json里会多出这两行:

node.js实现上传文件功能

2、创建app.js文件:

var express=require('express')
var app=express()
var multer=require('multer')
var fs=require('fs')
// var upload=multer({ dest: './tmp/' })

var createFolder = function(folder){
 try{
  fs.accessSync(folder); 
 }catch(e){
  fs.mkdirSync(folder);
 } 
};

var uploadFolder = './upload/';

createFolder(uploadFolder);

// 通过 filename 属性定制
var storage = multer.diskStorage({
 destination: function (req, file, cb) {
  cb(null, uploadFolder); // 保存的路径,备注:需要自己创建
 },
 filename: function (req, file, cb) {
  // 将保存文件名设置为 字段名 + 时间戳,比如 logo-1478521468943
  let suffix=file.mimetype.split('/')[1];//获取文件格式
  cb(null, file.fieldname + '-' + Date.now()+'.'+suffix); 
 }
});

// 通过 storage 选项来对 上传行为 进行定制化
var upload = multer({ storage: storage })

app.post('/profile',upload.single('file'),function(req,res,next){
//req.body contains the text fields
 console.log(req.file,'------',req.body,'-------',req.file.path);
 // res.end(req.file.buffer);
 // console.log(req.file.buffer.toString().length);
 
 res.end('ok');
})
app.listen(8081);

然后在命令行窗口继续输入:node app.js

点击回车运行文件

前端的话刚好我这里有篇上传图片的小程序示例,可以测试使用

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
Jul 09 Javascript
jquery cookie的用法总结
Nov 18 Javascript
快速掌握Node.js模块封装及使用
Mar 21 Javascript
教你如何在Node.js中使用jQuery
Aug 28 Javascript
Vue.js第二天学习笔记(vue-router)
Dec 01 Javascript
详解微信小程序 页面跳转 传递参数
Dec 08 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
Aug 08 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
Sep 30 Javascript
vue 属性拦截实现双向绑定的实例代码
Oct 24 Javascript
vue-better-scroll 的使用实例代码详解
Dec 03 Javascript
使用Vue.observable()进行状态管理的实例代码详解
May 26 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
Jun 20 Javascript
js canvas实现5张图片合成一张图片
Jul 15 #Javascript
js使用文件流下载csv文件的实现方法
Jul 15 #Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
Jul 15 #Javascript
微信小程序开发技巧汇总
Jul 15 #Javascript
微信小程序中如何计算距离某个节日还有多少天
Jul 15 #Javascript
微信小程序基础教程之worker线程的使用方法
Jul 15 #Javascript
使用vue-router在Vue页面之间传递数据的方法
Jul 15 #Javascript
You might like
PHP 5.0对象模型深度探索之类的静态成员
2008/03/27 PHP
php中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
php通过记录IP来防止表单重复提交方法分析
2014/12/16 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
smarty模板数学运算示例
2016/12/11 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
JS、CSS加载中的小问题探讨
2013/11/26 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
2015/08/23 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
微信小程序Redux绑定实例详解
2017/06/07 Javascript
JS加密插件CryptoJS实现AES加密操作示例
2018/08/16 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
js自定义input文件上传样式
2018/10/26 Javascript
Python基础之函数用法实例详解
2014/09/10 Python
Python 中 Meta Classes详解
2016/02/13 Python
python实现员工管理系统
2018/01/11 Python
Python实现动态图解析、合成与倒放
2018/01/18 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
Django数据统计功能count()的使用
2020/11/30 Python
德国旅游网站:weg.de
2018/06/03 全球购物
大三学习计划书范文
2014/05/02 职场文书
幼儿园安全生产月活动总结
2014/07/05 职场文书
团代会邀请函
2015/02/02 职场文书
英语教师求职信范文
2015/03/20 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
施工安全协议书
2016/03/22 职场文书
PyTorch中的torch.cat简单介绍
2022/03/17 Python