Je suis nouveau à Node js et j'ai quelques problèmes. Auparavant, j'utilisais node Js v13.8 pour exécuter mon application express et cela fonctionnait très bien. J'utilisais la syntaxe es6 et le module type avec des fichiers d'extension JS. Mais, lorsque j'ai mis à jour vers Node 14.1.0. Il affiche l'erreur suivante (même erreur avec la version 13.9).
TypeError [ERR_UNKNOWN_FILE_EXTENSION] : Extension de fichier inconnue "" pour D:\Projects\matri -Site \bin\www .
De nouveau, lorsque j'ai rétrogradé vers Node 13.8, cela fonctionne bien.
Voici mon fichier package.json :
{
"name": "matri-site",
"version": "0.0.0",
"private": true,
"type": "module",
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"bcryptjs": "^2.4.3",
"buffer": "^5.5.0",
"cookie-parser": "~1.4.4",
"debug": "~2.6.9",
"express": "4.16.1",
"handlebars": "^4.7.6",
"http-errors": "~1.6.3",
"jade": "~1.11.0",
"jsonwebtoken": "^8.5.1",
"mongoose": "^5.8.9",
"morgan": "~1.9.1",
"nodemailer": "^6.4.2",
"redis": "^3.0.2",
"validator": "^12.1.0",
"validatorjs": "^3.18.1"
},
"devDependencies": {
"eslint": "^6.8.0"
}
}
Voici mon fichier WWW :
#!/usr/bin/env node
/**
* Module dependencies.
*/
// var app = require('../app');
// var debug = require('debug')('matri-site:server');
// var http = require('http');
import app from '../app.js';
import debug from "debug";
debug.debug('matri-site:server');
import http from "http";
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
/**
* Normalize a port into a number, string, or false.
*/
function normalizePort(val) {
var port = parseInt(val, 10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false;
}
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
var bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port;
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
var addr = server.address();
var bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
debug('Listening on ' + bind);
}