Express. js 'приложение' в одной строке вместо двух - PullRequest
0 голосов
/ 29 марта 2020

При использовании Express я всегда должен это делать.

const express = require('express');
const app = express();

В качестве альтернативы, чтобы сделать его немного более сплоченным, я иногда делаю это.

const
  express = require('express'),
  app = express();

Есть ли способ написать это в одну строку вместо двух?

1 Ответ

0 голосов
/ 29 марта 2020

Используя es6, это легко: const[<variable declarations>] = [<require modules>]

const [app = express()] = [require('express')];

Этот тип синтактики c сахар - это то, что делает ES6 JavaScript действительно удивительным.

Если бы я хотел добавить другие модули, такие как fs и path, могут быть подвергнуты деструктурированию для предоставления методов, поэтому вы не всегда должны набирать fs или path, прежде чем сможете использовать прикрепленный метод.

const [fs,path,app=express()] = [require('fs'), require('path'), require('express')]

Теперь Я объявил, что обычно 4 строки только в 1 строке.

Он может go еще больше, используя деструктуризацию, например, я хочу читать файлы asyn c, и для этого обычно требуются методы fs и path.

const [{readFileSync},{resolve,join},app=express()] = [require('fs'), require('path'), require('express')]

Таким образом, в конечном итоге это становится неаккуратным и приводит к здравому смыслу разрывы строк.

const [
  {readFileSync},
  {resolve,join},
  app=express()
] = [require('fs'), require('path'), require('express')]

И теперь вы можете еще больше упростить свой код с помощью магов c из es6.

const [
  {readFileSync: read, writeFileSync: write},
  {resolve,join},
  app=express()
] = [require('fs'), require('path'), require('express')]

В этом сценарии мне теперь нужно только позвонить read вместо readFileSync и write вместо writeFileSync.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...