Nodejs Express простой импорт js файла маршрутизатор

#javascript #node.js #express #router

#javascript #node.js #экспресс #маршрутизатор

Вопрос:

как импортировать файл user.json json в мой user.js ? когда я набираю / user, должен отображаться json? новая версия узла, которую я не понимаю

index.js

 import express from 'express';
import bodyParser from 'body-parser';
import usersRoutes from './routes/users.js';

const app = express();
const PORT = 5000;

app.use(bodyParser.json());

app.use('/users', usersRoutes);

app.get('/', (req, res) => {
    res.send('hello');
});

app.listen(PORT, () => console.log(`Server running on port: http://localhost:${PORT}`));
 

user.js

 import express from 'express';
const router = express.Router();


router.get('/', (res, req) => {
    res.send();
});

export default router;
 

введите описание изображения здесь

Комментарии:

1. в чем именно заключается ошибка? обратите внимание, что user.json отличается от user.js

Ответ №1:

 import express from 'express';
import userJSON from '../user.json' // < ------- here
const router = express.Router();


router.get('/', (res, req) => {
    res.send();
});

export default router;
 

Комментарии:

1. у меня есть эта ошибка: ошибка типа [ERR_UNKNOWN_FILE_EXTENSION]: неизвестное расширение файла «.json», когда я пытаюсь localhost:5000 / users

Ответ №2:

В зависимости от используемой вами версии вам необходимо либо использовать babel, либо включить флаг —experimental-json-modules для работы модуля. ** узлу v.14 ничего не нужно.

узел —экспериментальный-json-модули about.js

 import express from 'express';
import userfile from '../user.json' // import the json file
const router = express.Router();


router.get('/', (res, req) => {
    res.send(userfile);  //this line sends the json
});

export default router;
 

Комментарии:

1. те же ошибки: ошибка типа [ERR_UNKNOWN_FILE_EXTENSION]: неизвестное расширение файла «.json» для C:Users33680DocumentsDeveloppementAngularapiuser.json

2. Какой узел вы используете? Вы используете babel ?

3. @SomeoneSpecial, что это то, что я называю ошибкой.

4. обычно я публикую ответы, основанные на последней версии, и сообщаю, есть ли у пользователя дополнительные ошибки. Спасибо за обновление поста

Ответ №3:

Вместо этого используйте модуль fs:

 const user = require('fs').readFileSync('../user.json', 'utf-8');
 

Ответ №4:

Вы можете сделать это просто:

 import express from 'express';
import user from '../user'; // <---- Don't need even the .json extension.
const router = express.Router();


router.get('/', (res, req) => {
    res.send(user);
});

export default router;