restify / restify/node-restify
Additional content-type parameters are thrown away
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 10.7k
- Forks
- 975
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 5
Description
- Used appropriate template for the issue type
- Searched both open and closed issues for duplicates of this issue
- Title adequately and concisely reflects the feature or the bug
Bug Report
Restify Version
6.3.4
Node.js Version
8.9.1
Expected behaviour
Given the following code, I would expect the content-type string I set to be used.
res.contentType = "text/plain; version=0.0.4; charset=utf-8"
res.send(...)
Should produce:
Content-Type: text/plain; version=0.0.4; charset=utf-8
For context, the content-type I'm using comes from: Prometheus client, Prometheus docs
Actual behaviour
Only the contents of the string before the first ; are used, resulting in:
Content-Type: text/plain
Repro case
var restify = require('restify');
const server = restify.createServer({
name: 'myapp',
version: '1.0.0'
});
server.get('/test', function (req, res, next) {
res.contentType = "text/plain; version=0.0.4; charset=utf-8"
res.send(200, "some text")
return next();
});
server.listen(8080, function () {
console.log('%s listening at %s', server.name, server.url);
});
Cause
The string is split here, throwing away the rest:
Are you willing and able to fix this?
Maybe 😄
Assuming there isn't some reason this is intended behaviour, I can have a look at fixing.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in lib/response.js at the content-type handling around line 466 and run the provided Restify reproduction. Preserve the complete content-type value, including parameters, and verify that the response emits text/plain; version=0.0.4; charset=utf-8 rather than only text/plain.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, node.js
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 42/100