I'm using NextJS with Vercel Serverless as described in this answer - https://stackoverflow.com/a/63659707/2826679 . My NodeJS function fails with an error message when I'm running it locally using vercel dev
or when it's deployed to vercel servers.
My <PROJECT_ROOT>/api/report.ts
looks like this and it fails at printing "3 req.body".
import type { VercelRequest, VercelResponse } from '@vercel/node';
export default async function handler(req: VercelRequest, res: VercelResponse) {
if (req.method === 'POST') {
console.log("1")
console.log("2", req)
console.log("3", req.body)
const data = {
test: "test"
};
return res.status(200).setHeader('content-type', 'application/json').end(JSON.stringify(data));
} else {
return res.status(404);
}
}
Error:
Unhandled rejection: Error: Cannot find module 'content-type'
Require stack:
- /Users/piotr/.config/yarn/global/node_modules/@vercel/node-bridge/helpers.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1039:15)
at Function.Module._resolveFilename.sharedData.moduleResolveFilenameHook.installedValue [as _resolveFilename] (/Users/piotr/.config/yarn/global/node_modules/@cspotcode/source-map-support/source-map-support.js:811:30)
at Function.Module._load (node:internal/modules/cjs/loader:885:27)
at Module.require (node:internal/modules/cjs/loader:1105:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object.909 (/Users/piotr/.config/yarn/global/node_modules/@vercel/node-bridge/helpers.js:262:33)
at __webpack_require__ (/Users/piotr/.config/yarn/global/node_modules/@vercel/node-bridge/helpers.js:328:42)
at parseBody (/Users/piotr/.config/yarn/global/node_modules/@vercel/node-bridge/helpers.js:19:45)
at IncomingMessage.get [as body] (/Users/piotr/.config/yarn/global/node_modules/@vercel/node-bridge/helpers.js:212:27)
at handler (/Users/piotr/astrology/astroperspective/api/report.ts:7:26) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/Users/piotr/.config/yarn/global/node_modules/@vercel/node-bridge/helpers.js'
]
}
EDIT: Now, I'm thinking that it has to do something with dependencies in package.json since my package.json is specifically for NextJS