我正在尝试构建一个API,我担心我的所有资源都无法通过api.myapp.com域访问,或者他们将"生活"错误的uris.
我已经为我的域名添加了CNAME以指向我的Heroku应用.(例如:浏览www.myapp.com将您带到https://myherokuapp.heroku.com)
我想建立一个API子域名,以便通过 https://api.myapp.com获取到https://myherokuapp.heroku.com/api/v1
最好的方案是https://api.myapp.com/accounts/12345的POST 会创建一个新帐户.这甚至可能吗?
(我知道Heroku不能使用子域名(例如:mysubdomain.myappname.heroku.com))
我相信答案可能分为三个不同的地方:
我需要一种简单的方法来使用busboy-connect访问req对象中的多部分表单数据.我正在使用Express 4,它现在需要以前内置功能的模块.
我希望req.body对象在我的路由中可用,但是busboy.on('field')函数是异步的,并且在传递它以继续关闭代码之前不会处理所有表单数据.
在busboy之上构建了一个中间件模块,称为multer,它在到达路径之前获取req.body对象,但是它会覆盖从路径中定义busboy.on('file')事件的能力.
这是我破碎的代码:
// App.js
app.post(/users, function(req, res, next){
var busboy = new Busboy({ headers: req.headers });
// handle text field data (code taken from multer.js)
busboy.on('field', function(fieldname, val, valTruncated, keyTruncated) {
if (req.body.hasOwnProperty(fieldname)) {
if (Array.isArray(req.body[fieldname])) {
req.body[fieldname].push(val);
} else {
req.body[fieldname] = [req.body[fieldname], val];
}
} else {
req.body[fieldname] = val;
console.log(req.body);
}
});
busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
tmpUploadPath = path.join(__dirname, "uploads/", filename);
targetPath = path.join(__dirname, "userpics/", filename);
self.imageName …Run Code Online (Sandbox Code Playgroud)