Ich installierte Express global und Npm installiert meine Express-App, aber weder die Intelligenz oder die App funktioniert (ich verwende Visual Studio-Code auf Mac OS Yosemite).Warum wird createServer() als keine Funktion betrachtet?
hier ist ein Beispielcode:
/// <reference path="typings/node/node.d.ts" />
/// <reference path="typings/express/express.d.ts" />
var express = require('express');
var app = express.createServer();
app.get('/', function (req, res) {
res.send('hi');
})
app.listen(8000);
und hier sind die Fehler, die ich bin immer:
Abeds-MacBook-Pro:myNode AZ$ node twitter.js
/Users/AZ/Desktop/myNode/twitter.js:5
var app = express.createServer();
^
TypeError: express.createServer is not a function
at Object.<anonymous> (/Users/AZ/Desktop/myNode/twitter.js:5:19)
at Module._compile (module.js:397:26)
at Object.Module._extensions..js (module.js:404:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:429:10)
at startup (node.js:139:18)
at node.js:999:3
ich ein bisschen recherchiert und festgestellt, dass createServer() ist veraltet. Ich lese, dass ich die Version irgendwo in meiner Anwendung ändern muss.
Anmerkung: Ich habe eine andere Anwendung rein Node.js verwenden und createServer() funktioniert ohne Fehler zusammen mit dem Intellisence.
EDIT: in meiner anderen Anwendung habe ich stattdessen require('net')
verwendet.
Ich änderte meinen Code auf die folgenden:
var express = require('express')
, http = require('http');
var app = express();
var server = http.createServer(app);
console.log('Listening on port 8000')
app.get('/', function (req, res) {
res.send('hi');
})
app.listen(8000)
Das Problem, das ich jetzt habe, ist, dass res.send('hi');
noch nicht erreicht wurde, auch bekannt als, ich kann nicht an den Client senden.
EDIT 2:
Ich habe versucht, den folgenden Code in eine der Antworten zur Verfügung gestellt:
const express = require('express');
const http = require('http');
const app = express();
const server = http.createServer(app).listen(8080, function(err) {
if (err) {
console.log(err);
} else {
const host = server.address().address;
const port = server.address().port;
console.log(`Server listening on ${host}:${port}`);
}
});
app.get('/', function (req, res) {
res.send('hi');
})
res.send('hi');
immer noch nicht funktioniert, es ist auch nicht einen Fehler liefern.
Nicht sicher, ob es hilft, aber ich verwende immer 'var app = express()' anstelle von 'var app = express.createServer()'. –
@JoachimIsaksson erstellt dies einen Server? – abedzantout
Immer davon als das Erstellen der Anwendung, aber ja, es erstellt ein Objekt, das Sie aufrufen können, genau wie Sie es tun. Wenn Sie nur die Zeile ersetzen, wird der Beispielcode ausgeführt. –