我嘗試在aws lambda的幫助下在節點js端創建一個cookie。我已經嘗試過下面的鏈接來創建cookie,但我可以使用context.done或context.successed來設置cookie。用這個aproch cookie打印在瀏覽器上,你的代碼就會退出。我正在嘗試設置一個cookie然後執行其他功能。 使用導航節點js,您必須使用http.createClient或createServer來獲取http.serverResponse,但使用aws lambda您不能這樣做。我在使用AWS的節點js創建cookie時遇到了困難Lambda
AWS鏈接用AWS api gatewal和lambda創建cookie。我能夠實現這一點。 https://aws.amazon.com/blogs/compute/simply-serverless-using-aws-lambda-to-expose-custom-cookies-with-api-gateway/
編輯 添加代碼,我想要做的,
exports.handler = (event, context, callback) => {
// TODO implement
console.log("{'Cookie':event['Cookie']}");
var date = new Date();
// Get Unix milliseconds at current time plus 365 days
date.setTime(+ date + (365 * 86400000)); //24 \* 60 \* 60 \* 100
var cookieVal = Math.random().toString(36).substring(7); // Generate a random cookie string
var cookieString = "mycookie="+cookieVal+"; expires="+date.toGMTString()+";";
var errorXml = '<?xml version="1.0" encoding="UTF-8"?><VAST version="3.0"><error>Ad Not Available</error></VAST>';
console.log(event.params.header["Cookie"]);
if(event.params.header["Cookie"]){
console.log(errorXml);
callback(null, "test");
}else{
console.log("setting cookie");
callback(null, {errorXml,"Cookie":cookieString});
}
};
隨着我能夠設置Cookie,但我的O/P是XML,而我路過回調函數中的cookie(我認爲這是使用lambda在節點js中設置cookie的唯一方法,我可能是錯的)。 application/xml正在爲有效的xml創建問題。一旦設置了cookie,代碼就不會進入其他循環。在我的應用程序中,我可以檢查Cookie是否設置在標題中,並將其傳遞給某個變量。現在我在設置cookie時遇到了問題,並帶有回調。
用你的最後一個方法,我已經能夠設置cookie,但這個回調退出了e功能即出口處理程序。我是節點js的新手,可以將此cookie設置爲函數中的任何變量,並在函數執行後返回該值。 – user1858991
出現,您在嵌套函數中執行可變執行時間,節點在執行完成之前返回回調。您可以將布爾值設置爲False,並在所有嵌套函數執行完畢後將其設置爲True。然後,使用IF Condition檢查布爾是否爲真,如果是,則返回回調。或者,學會在這些情況下使用承諾。肯定有幫助。 –
使用布爾值爲您工作?或者你應用了別的東西。請告訴我們。 –