[英]How to convert typescript class to plain javascript object with class-transformer
[英]Serverless with TypeScript, convert from plain JavaScript
我有一段 JavaScript 代碼,我想將其轉換為 TypeScript
目前我有這兩個文件:
API_Responses.js
const Responses = {
_200(data = {}) {
return {
statusCode: 200,
body: JSON.stringify(data),
};
}
};
module.exports = Responses;
getData.js
const Responses = require('./API_Responses');
exports.handler = async event => {
const response = {
payload: event?.pathParameters || ''
}
return Responses._200(response);
};
用於部署該 lambda 函數的serverles.yml
文件是:
functions:
getData:
handler: getData.handler
events:
- http:
path: get-data/{ID}
method: GET
cors: true
我想使用ts
文件並import
ES6 方法。
所以我嘗試了這個改變:
API_Responses.ts
export const Responses = {
_200(data = {}) {
return {
statusCode: 200,
body: JSON.stringify(data),
};
}
};
getData.ts
import Responses from './API_Responses';
// But here I'm confused
const handler = async event => {
const response = {
payload: event?.pathParameters || ''
}
return Responses._200(response);
};
export default handler;
serverless.yml
functions:
getData:
handler: getData.handler
events:
- http:
path: get-data/{ID}
method: GET
cors: true
通過這種方式我得到錯誤:“Runtime.ImportModuleError:錯誤:找不到模塊'getData'”,
您似乎在這兩個版本(vanilla javascript 和 typescript 版本)之間更改了serverless.yml
文件。
被調用的函數的名稱仍然是“handler”,但在serverless.yml
文件中你調用的是“getData”(對應於文件名)
無服務器框架是圍繞已部署的普通 JavaScript 函數構建的。 編譯后它不知道您的文件名。
如果您使用 ts-node 或手動編譯.ts
文件,您可以隨時檢查生成的輸出源代碼,該代碼將被執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.