Comments (6)
@yvele you were right, it depends on node version (it works against 6.x)
from azure-function-express.
After I fixed this issue locally, I stumbled upon another issue. The library I use, contains the following to calls:
res.writeHead(302, null, {
'Access-Control-Allow-Origin': '*',
'Location': path
});
res.end();
But when looking at the implementation of end
, it seems that the status code is overwritten:
function end(context, data, encoding) {
// 1. Write head
this.writeHead(this.statusCode); // Make jshttp/on-headers able to trigger
// 2. Return raw body to Azure Function runtime
context.res.body = convertToBody(data, encoding);
context.res.isRaw = true;
context.done();
}
writeHead
does not set this.statusCode
which leads to end
setting the statusCode
to 200
. Is this the intended behavior? In my case this means, that the Location
header is ignored by the browser as the status code is not within the 3** range.
from azure-function-express.
@luchsamapparat thank you for your investigation on this.
May I ask you what exactly is the library you are using?
from azure-function-express.
I'm using oauth-shim to build an OAuth proxy according to the documentation from hello.js.
The implementation is pretty simple as you just have to configure Express.js to use oauth-shim:
const express = require("express");
const createHandler = require("azure-function-express").createHandler;
const oauthshim = require('oauth-shim');
const param = require('oauth-shim/src/utils/param');
const app = express();
app.all('/api/oauth-btg', oauthshim);
// monkey patch for writeHead issue in azure-function-express
oauthshim.redirect = function (req, res, next) {
if (req.oauthshim && req.oauthshim.redirect) {
let hash = req.oauthshim.data;
let path = req.oauthshim.redirect;
path += (hash ? '#' + param(hash) : '');
// bugfix: always pass statusMessage as second param
res.writeHead(302, null, {
'Access-Control-Allow-Origin': '*',
'Location': path
});
res.statusCode = 302;
res.end();
}
else if (next) {
next();
}
};
oauthshim.init([{
client_id: 'XXX',
client_secret: 'XXX',
grant_url: 'https://login.microsoftonline.com/common/oauth2/v2.0/token',
domain: 'XXX'
}]);
module.exports = createHandler(app);
from azure-function-express.
maybe it's me but i cannot get this call to this._renderHeaders() here:
https://github.com/yvele/azure-function-express/blob/master/src/OutgoingMessage.js#L67
where does _renderHeaders() come from ? (not in the azure-functions response object)
my app crashes with a NPE just there.
from azure-function-express.
@gunzip what version of Node.js are you using? Because it's only compatible with 6.x.x
from azure-function-express.
Related Issues (20)
- Not working with Azure Functions V2 beta HOT 16
- Seems not to work with content type application/json HOT 1
- Content-Type doesn't work correctly HOT 7
- Misleading Readme regarding context
- Package hardcoded to only work on Node <7 HOT 4
- 2.0 seems to have broken static file serving on azure. HOT 12
- Http body already parsed HOT 4
- Broken in GA Functions 2.0 runtime
- sendFile fails with TypeError: Cannot read property 'length' of null HOT 1
- I can not get the examples to work with v1 and v2
- error, warn, info, and verbose log functions are not bind to the sanitized context HOT 2
- Not able to do a POST request having content-type and body HOT 1
- How to log to console before request
- Node engine version HOT 4
- Is this still under active development? HOT 9
- req.context.invocationId HOT 5
- Changelog HOT 3
- Support for multi-part file uploads HOT 11
- Not getting it to work HOT 2
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 azure-function-express.