I am new to all of this, and I'm trying to add Node + Typescript backend to my Angular project. But after importing express I always get the error.
[ERROR] SyntaxError: Cannot use import statement outside a module.
{
"name": "server",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"serve": "ts-node-dev server.ts",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"@types/express": "^4.17.11",
"express": "^4.17.1",
"ts-node": "^9.1.1",
"ts-node-dev": "^1.1.6",
"tslint": "^6.1.3",
"typescript": "^4.2.4"
},
}
{
"compilerOptions": {
"target": "ESNEXT",
"module": "commonjs",
"strict": false,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
}
}
import * as express from 'express';
const app = express();
app.listen(4201, '127.0.0.', function() {
console.log('Server is listening on port 4201');
});
I have looked this up and the most common solution was to add "type": "module" to package.json which I did. I also know that this works only from Node 13 and further, and I have Node: 14.15.5.
The best practice to import the node modules is by using require(). You can import built-in core node modules, npm modules as well as local modules using require() function. In your case, use const express = require( "express" ) instead of import * as express from 'express' and remove "type":"module" from your package.json. Let me know if this works for you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With