node js HOLEN 404 (Nicht Gefunden)
Ich bin neu node.js. ich bin mit nodejs von bin/wwww und immer "jquery.min.js:4 BEKOMMEN http://127.0.0.1:3000/file.js 404 (Nicht Gefunden)" angezeigt. Ich versuche sehr grundlegende und einfache Sache in einem einfachen web-Seite. Nur versuchen, ausführen einer Datei auf dem server durch ajax nennen, aber es zeigt immer an Datei nicht gefunden " - Fehler.
In meine html-Seite (firstpage.html) ich versuche was ich will, als client-Anforderung.
<!DOCTYPE html>
<html>
<head>
<meta content="en-us" http-equiv="Content-Language">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<link rel="stylesheet" type="text/css" href="stylesheets/myButton.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
var dataString;
$(document).ready(function(){
$.ajax({
type: "GET",
url: 'file.js',
data: dataString,
success: function(data){
console.log(data);
}
});
});
</script>
</head>
<body>
<p class="auto-style1"><strong>Welcome to MyPage</strong></p>
<div >
<input class="myButton" type="button" onclick="readTextFile(test.txt)" value="Submit" />
</div>
<button id="bb">QUERY</button>
</body>
</html>
und ich habe eine Datei (file.js) auf dem server ,
var fs = require("fs");
console.log("Going to write into existing file");
fs.writeFile('input.txt', 'Simply Easy Learning!', function(err) {
if (err) {
return console.error(err);
}
console.log("Data written successfully!");
console.log("Let's read newly written data");
fs.readFile('input.txt', function (err, data) {
if (err) {
return console.error(err);
}
console.log("Asynchronous read: " + data.toString());
});
});
Aktuell file.js und index.txt in myapp\public\javascripts Lage. meine app.js ist als unten,
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var index = require('./routes/index');
var users = require('./routes/users');
var firstpage = require('./routes/firstpage');
var app = express();
//view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
//uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', index);
app.use('/users', users);
app.use('/firstpage', firstpage);
//catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
//error handler
app.use(function(err, req, res, next) {
//set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
//render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
Bin ich einige machen Fehler in der Konfiguration ? bitte helfen Sie.
InformationsquelleAutor usersam | 2017-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre ausdrückliche nie gesagt, was Sie zu dienen, wenn file.js angefordert wird.
Weil es nicht ., /users oder /firstpage, ist es standardmäßig der 404-Fehler zurückgegeben. Und weil es eine js-Datei, müssen Sie die Verwendung der express-s-static-middleware-Funktion.
Sollte sein, was du willst, würde ich platzieren Sie es nach
Mit:
Aufgepasst, dies alles ermöglicht in der routes-Ordner zugegriffen werden statisch, also wirst du entweder wollen, um alle statischen Ressourcen woanders, oder sperren Sie alles in den routes Ordner, den Sie wollen nicht auf diese Weise.
was bedeutet der Fehler sagen?
node-start Fehler gibt => schreiben in eine bestehende Datei D:\myapp\node_modules\express\lib\router\index.js:458 throw new TypeError ("Router.verwenden Sie() benötigt die middleware-Funktion, bekam aber ein " + gettype(fn)); ^
TypeError: Router.verwenden Sie() benötigt die middleware-Funktion, bekam aber ein Objekt an die Funktion.verwenden (D:\myapp\node_modules\express\lib\router\index.js:458:13) bei EventEmitter.<anonym> (D:\myapp\node_modules\express\lib\application.js:220:21) im Array.forEach (nativ) bei EventEmitter.verwenden (D:\myapp\node_modules\express\lib\application.js:217:7) im Objekt.<anonym> (D:\myapp\app.js:31:5) am Modul._compile (Modul.js:570:32) Object.Module._extensions..js (Modul.js:579:10) bei Module.load (module.js:487:32) bei tryModuleLoad (Modul.js:446:12) auf Funktion.- Modul._load (module.js:438:3)
Furchtbar Leid, schauen Sie bitte auf meine aktualisierte Antwort
InformationsquelleAutor Kyle Becker
Ihre ajax-request auf die öffentliche Ordner, aber die Datei lässt sich in der javascript-Unterverzeichnis... Versuchen Sie, die Datei, die Sie verlangen in der öffentlichen Ordner oder ändern Sie den request-URL, um die richtige Ordnerstruktur...
InformationsquelleAutor Angelos Koulouris
Check this out: https://github.com/mdn/express-locallibrary-tutorial
https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs
InformationsquelleAutor Jasp402