【发布时间】:2017-12-25 17:26:10
【问题描述】:
这是 productsModel.js 文件
'use strict';
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var productsSchema = new Schema({
name: {
type: String,
required: true
},
cost: {
type: Number
},
product_imagePaths: [{
type: String
}]
});
module.exports = mongoose.model('Products', productsSchema);
这是我的 productsController.js 的代码
var mongoose = require('mongoose'),
Products = mongoose.model('Products');
exports.uploadProducts = function(req,res) {
var new_product = new Products(req.body)
new_product.save(function(err,product){
if(err) {
res.send(err);
}
res.status = 200;
res.json({
"status":"success"
});
});
};
productsRoutes.js
'use strict';
module.exports = function (app) {
var productsController = require('../controllers/productsController');
app.route('/products')
.get(productsController.fetchAllProducts)
.post(productsController.uploadProducts);
};
在我的 server.js 中
// mongoose instance connection url connection
mongoose.Promise = global.Promise;
var db = mongoose.connect('mongodb://localhost/abcd', {
useMongoClient: true
});
// body parser middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true }));
// route
var userRoutes = require('./api/routes/userRoutes');
var aboutUsRoutes = require('./api/routes/aboutusRoutes');
var productsRoutes = require('./api/routes/productsRoutes');
userRoutes(app);
aboutUsRoutes(app);
productsRoutes(app);
现在,当我使用 x-www-form-urlencoded 时,这可以正常工作。但由于我想通过Post 方法(productsController.js 中的uploadProducts)上传文件,所以只能通过form-data 完成。但是,它不适用于form-data。我读到multer 可用于form-data 上传,但我不知道如何在以下方法中使用它。
【问题讨论】:
-
你有没有使用任何框架来编写客户端部分?
-
我正在使用 Angular 4。
标签: node.js mongoose routes multer form-data