๊ฐ•์˜

๋ฉ˜ํ† ๋ง

๋กœ๋“œ๋งต

BEST
Programming

/

Back-end

Applying TypeScript to Node.js (feat. NodeBird)

Let's apply TypeScript to Node.js, add typings to existing npm packages, or create your own TypeScript library.

(4.5) 15 reviews

472 learners

Level Intermediate

Course period Unlimited

  • zerocho
Node.js
Node.js
Web Application
Web Application
TypeScript
TypeScript
Node.js
Node.js
Web Application
Web Application
TypeScript
TypeScript

To those who are getting errors with serializeUser and deserializeUser

Passport-related typing has been updated again.

Add the following code to types/index.d.ts

 import IUser from '../models/user' ;

declare global {
namespace Express {
export interface User extends IUser {}
}
}

Change passport/index.ts to:
 passport . serializeUser (( user , done ) => {
done ( null , user . id );
});
passport . deserializeUser < number >( async ( id , done ) => {
try {
const user = await User . findOne ({
where : { id },
});
if (! user ) {
return done ( new Error ( 'no user' ));
}
return done ( null , user ); // req.user
} catch ( err ) {
console . error ( err );
return done ( err );
}
});

Additionally, you no longer need to do req.user!.toJSON() as User . You can just use req.user .

You need to add the ts-node section to tsconfig.json.
 {
"ts-node" : {
"files" : true
} ,
"compilerOptions" : {
"strict" : true,
"lib" : [ "es2020" ] ,
"esModuleInterop" : true,
"moduleResolution" : "node" ,
"typeRoots" : [ "./types" ]
}
}
Comment