使用 multer 提取上传的 csv 数据
Extracting uploaded csv data with multer
我正在移植 rails 应用程序以使用 MEEN 堆栈(Mongo、Express、Ember、Node)
我有一个函数可以获取上传的 csv 并从中提取数据,然后使用这些数据形成 SQL 对数据库的查询。出于某种原因,我在使用 multer 访问上传的 csv 数据时遇到问题。
我的路由器文件
var quotes = require('../api/quote');
var cors = require('cors');
var sku = require('../api/tools/sku');
var multer = require('multer');
var upload = multer({ dest: 'uploads/' });
var util = require("util");
var fs = require("fs");
var corsOptions = {
origin: 'http://localhost:4200'
}
module.exports = function(router){
router.route('/quotes').post(cors(corsOptions),function(req,res){
console.log(req.body);
quotes.addQuote(req,res);
}).get(cors(corsOptions),function(req,res){
quotes.getAllQuotes(req,res);
});
router.route('*').get(cors(corsOptions), function(req,res){
res.sendFile('public/index.html',{root:'./'});
});
router.post('/tools/sku/reactivate',upload.single('csvdata'),function(req,res){
console.log(req.files);
console.log('handing request over to sku.reactivate');
sku.reactivate(req,res);
});
};
我的 tools/sku/reactivate 模板车把文件
<div class="col-md-8 col-md-offset-2 text-center">
<h2 class="toolTitle">Reactivate SKUs</h2>
<p class="lead">CSV Should Contain 1 Column (SKU) Only</p>
{{file-upload enctype="multipart/form-data" type="file" url="/tools/sku/reactivate" class="center-block" accept="text/csv" name="csvdata"}}
</div>
我收到错误:当我尝试 post 将文件上传到 /tools/sku/reactivate post 路由时出现意外字段。我不明白我的代码有什么问题。
问题是使用文件上传 ember 插件。一旦我删除了 handlebars 组件并硬编码了一个如下所示的表单,文件上传就成功了。
<div class="col-md-8 col-md-offset-2 text-center">
<h2 class="toolTitle">Reactivate SKUs</h2>
<p class="lead">CSV Should Contain 1 Column (SKU) Only</p>
<form action="/tools/sku/reactivate" method="POST" enctype="multipart/form-data">
<input class="center-block" type="file" name="csvdata">
<button type="submit" class="btn btn-md btn-danger">Submit</button>
</form>
</div>
我正在移植 rails 应用程序以使用 MEEN 堆栈(Mongo、Express、Ember、Node)
我有一个函数可以获取上传的 csv 并从中提取数据,然后使用这些数据形成 SQL 对数据库的查询。出于某种原因,我在使用 multer 访问上传的 csv 数据时遇到问题。
我的路由器文件
var quotes = require('../api/quote');
var cors = require('cors');
var sku = require('../api/tools/sku');
var multer = require('multer');
var upload = multer({ dest: 'uploads/' });
var util = require("util");
var fs = require("fs");
var corsOptions = {
origin: 'http://localhost:4200'
}
module.exports = function(router){
router.route('/quotes').post(cors(corsOptions),function(req,res){
console.log(req.body);
quotes.addQuote(req,res);
}).get(cors(corsOptions),function(req,res){
quotes.getAllQuotes(req,res);
});
router.route('*').get(cors(corsOptions), function(req,res){
res.sendFile('public/index.html',{root:'./'});
});
router.post('/tools/sku/reactivate',upload.single('csvdata'),function(req,res){
console.log(req.files);
console.log('handing request over to sku.reactivate');
sku.reactivate(req,res);
});
};
我的 tools/sku/reactivate 模板车把文件
<div class="col-md-8 col-md-offset-2 text-center">
<h2 class="toolTitle">Reactivate SKUs</h2>
<p class="lead">CSV Should Contain 1 Column (SKU) Only</p>
{{file-upload enctype="multipart/form-data" type="file" url="/tools/sku/reactivate" class="center-block" accept="text/csv" name="csvdata"}}
</div>
我收到错误:当我尝试 post 将文件上传到 /tools/sku/reactivate post 路由时出现意外字段。我不明白我的代码有什么问题。
问题是使用文件上传 ember 插件。一旦我删除了 handlebars 组件并硬编码了一个如下所示的表单,文件上传就成功了。
<div class="col-md-8 col-md-offset-2 text-center">
<h2 class="toolTitle">Reactivate SKUs</h2>
<p class="lead">CSV Should Contain 1 Column (SKU) Only</p>
<form action="/tools/sku/reactivate" method="POST" enctype="multipart/form-data">
<input class="center-block" type="file" name="csvdata">
<button type="submit" class="btn btn-md btn-danger">Submit</button>
</form>
</div>