DEV Community

ES6 Nodejs Project Kickstart

Srinivas Kandukuri on October 29, 2019

Architecture When we start new project, we all try to follow the best architecture. Architecture is the starting point to project, A bad...
Collapse
 
lagsurfer profile image
Barney

router.get('/getData', async (req, res) => { why is this function async?

Collapse
 
c4r4x35 profile image
Srinivas Kandukuri

In the next line we have written

 const response = Helperservice.reverse();

we can write this method as promise or callback with await

Collapse
 
hilleer profile image
Daniel Hillmann

He probably intented to await on the next line :)

Collapse
 
seanmclem profile image
Seanmclem • Edited

How can I get the import statements to work in nodejs? I keep reading that you set an experimental flag, but how do I do that? Can I get it to be permanent?

Is your babel config taking care of it?

Collapse
 
hilleer profile image
Daniel Hillmann • Edited

I think one of the purposes with Babel here is to compile to an earlier ES version, without import/export syntax.
If you look in the compiled js files, you will probably see require and module.export (this can vary on what Babel is set to build for)

This way you could use earlier node versions and not limit it to just one.

I would say this is more useful in modules than services, as a service could just be locked to one node version, whereas modules are likely to be used in many different versions of node :)

Collapse
 
c4r4x35 profile image
Srinivas Kandukuri

As Daniel said babel here is to compile es6 to es5, like import/export syntax.
it will create a dist folder with compiled code.

Collapse
 
hendrikfoo profile image
Hendrik Richert

Node12+ has native support for import/export:

thecodebarbarian.com/nodejs-12-imp...

Collapse
 
seanmclem profile image
Seanmclem

Yeah I tried upgrading to node 12 this past weekend and was still getting errors suggesting I use an experimental flag. But I can read your link and look into it more

Collapse
 
hilleer profile image
Daniel Hillmann

As also seen in the link that you send, it is only supported natively in modules :-). Thus not in the sample code used in the post ... But beside that you are right.

Collapse
 
lineldcosta profile image
lineldcosta

I think we can use jest for testing. what say?

Collapse
 
c4r4x35 profile image
Srinivas Kandukuri

Yes we can jest as well