[Node.js/Express]Memo
Installation
File Structure
Coming soon
Modules
- npm init -y
- yarn add --dev typescript express @types/express
- yarn add --dev ts-node nodemon
Files
- /src/server.ts
import * as express from 'express'; const app = express(); const port = 8080; app.get('/', (req, res) => res.send('Hello World!!')); app.listen(port, () => console.log(`Example app listening on port ${port}`));
- .prettierrc
{ "singleQuote": true, "jsxSingleQuote": false, "trailingComma": "all", "arrowParens": "always" }
- nodemon.json
{ "watch": ["src"], "ext": "ts", "ignore": ["tests/**/*.ts"], "exec": "npm run ts-node ./src/server.ts" }
- package.json(Only scripts)
"scripts": { "start": "node dist/server.js", "tsc": "tsc", "dev": "nodemon -L", "ts-node": "ts-node", "lint": "tslint --exclude **/*.d.ts --project . --fix 'src/**/*.ts' 'test/**/*.ts'" },
- tsconfig.json
{ "compilerOptions": { "outDir": "./public", "sourceMap": true, "module": "commonjs", "target": "es5", "moduleResolution": "node", "removeComments": true }, "include": ["./src/**/*"] }
- tslint.json
{ "defaultSeverity": "error", "extends": ["tslint:recommended"], "jsRules": {}, "rules": { "quotemark": [true, "single", "jsx-double"], "object-literal-sort-keys": false, "interface-over-type-literal": false, "ordered-imports": false, "no-console": false }, "rulesDirectory": [] }