Comments (3)
So, short answer, no there's not currently a way to do this. That said, I can fix it in the next day or two.
Longer answer: 'accept' does work, but it drives "accept", not content-type for sending data. You're sending data in that custom type, not asking for it back in a custom type (if you did 'curl -is -H "Accept: application/x-chess-pgn" http://localhost:3020/pgn' restify wouldn't have choked). Currently it's hardcoded to parse out multipart/form-url/json.
What I've been meaning to do is to have you be able to specify a handler for each type, if you want it out of the way, and just ship defaults for the ones that are there. But that's a little bit of code refactoring - anyway, I'll knock that out soon.
from node-restify.
Ok, I put in support for this (see the commit above). Basically, if you want to "fully" support what you described above, do this:
var assert = require('assert');
var restify = require('restify');
var server = restify.createServer({
contentHandlers: {
'application/x-chess-pgn': function(body) {
assert.ok(body);
return JSON.parse(body);
}
},
contentWriters: {
'application/x-chess-pgn': function(obj) {
assert.ok(obj);
return JSON.stringify(obj);
}
},
accept: ['application/json', 'application/x-chess-pgn']
});
server.post('/pgn', function(req, res, next) {
res.send(200, {success: true});
return next();
});
server.listen(3020);
To pick this up, it's npm published as v0.3.8; I finally got around to reworking accept
header handling, mostly because it choked on some simple tests I threw at it :).
Let me know if this works for you, and thanks for using restify!
m
from node-restify.
Hi Mark!
It's working now like a charm! Now I can parse files of different content-types. Thanks for your commit and support!
from node-restify.
Related Issues (20)
- package.json's "engines" says `"node": ">=10.0.0"` but actual base version is v14.18.0 HOT 2
- Upgrade formidable dependency to resolve npm warning HOT 1
- New async/await handler support breaks `next(false)` functionality in current async handlers HOT 16
- ResourceNotFound with parameter length greater than 100
- Error when response already destroyed
- Using return in Async handlers logs entire response object to stdout HOT 4
- Allow overriding log in `plugins/audit`
- socket close on request done ?
- prePath middleware strips multiple slashes to an empty string
- An odd request can crash the process when `restify.pre.sanitizePath()` is used
- Does officially support Nodejs V18? HOT 1
- request/response serializers behave incorrectly for auditLogger plugin and Bunyan logger HOT 1
- handler error when running benchmark
- Is this repo actively maintained ?
- Restify support for nodejs v20 is merged but not released HOT 5
- Is restify.plugins.bodyParser's maxBodySize setting actually doing anything?
- v11.2.0 is not available at NPM HOT 4
- Migration from 8.5.1 to 10.0.0 causing issues
- bunyan is unmaintained, move to pino?
- Res.redirect won't work for async routes at all?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-restify.