Javascript 节点js GET 404(未找到)

Javascript 节点js GET 404(未找到),javascript,node.js,Javascript,Node.js,我是node.js的新手。我正在从bin/wwww运行nodejs,并得到“jquery.min.js:4 GET 404(未找到)”错误。我正在一个简单的网页上尝试一些非常基本和简单的东西。只是试图通过ajax调用在服务器上执行一个文件,但它总是显示“未找到文件”错误 在我的html页面(firstpage.html)中,我正在尝试作为客户端请求使用的内容 <!DOCTYPE html> <html> <head> <meta content="en

我是node.js的新手。我正在从bin/wwww运行nodejs,并得到“jquery.min.js:4 GET 404(未找到)”错误。我正在一个简单的网页上尝试一些非常基本和简单的东西。只是试图通过ajax调用在服务器上执行一个文件,但它总是显示“未找到文件”错误

在我的html页面(firstpage.html)中,我正在尝试作为客户端请求使用的内容

<!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>
当前file.js和index.txt位于myapp\public\javascripts位置。我的app.js如下:

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;

我是否在配置上犯了一些错误?请帮助。

当请求file.js时,您的express从未被告知要提供什么服务

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);
});
因为它不是.、/users或/firstpage,所以它默认为404错误并返回该错误。因为它是一个js文件,所以需要使用express的静态中间件功能

app.use(express.static('routes');
应该是你想要的,我会把它放在后面

app.use('/', index);
app.use('/users', users);
app.use('/firstpage', firstpage);
以便:

app.use('/', index);
app.use('/users', users);
app.use('/firstpage', firstpage);
app.use(express.static('routes');

注意,这将允许静态访问routes文件夹中的任何内容,因此您要么希望将所有静态资源移到其他地方,要么阻止routes文件夹中不希望以这种方式访问的任何内容。

您的ajax请求指向公用文件夹,但文件保留在javascripts子目录中。。。尝试将您请求的文件移动到公用文件夹中,或更改请求URL以指向正确的文件夹结构…

检查此项:


我添加了“var filejs=require('./routes/file.js');”和“app.use('/file.js',filejs);”并将文件“file.js”移到了./routes,但现在它在npm启动时出现错误。抛出新类型错误('Router.use()需要中间件函数,但得到了'+gettype(fn));^TypeError:Router.use()需要中间件函数,但得到了一个Objectnode start给出的错误=>将写入现有文件D:\myapp\node\u modules\express\lib\Router\index.js:458抛出新的TypeError('Router.use()需要中间件函数,但得到了'+gettype(fn))^TypeError:Router.use()需要中间件函数,但在EventEmitter的function.use(D:\myapp\node\u modules\express\lib\Router\index.js:458:13)处获得了一个对象。(D:\myapp\node\u modules\express\lib\application.js:220:21)位于EventEmitter的Array.forEach(本机)。在对象上使用(D:\myapp\node\u modules\express\lib\application.js:217:7)。(D:\myapp\app.js:31:5)在Module.\u在Object.Module.编译(Module.js:570:32).\u扩展..js(Module.js:579:10)在Module.load(Module.js:487:32)在tryModuleLoad(Module.js:446:12)在Function.Module.\u加载(Module.js:438:3)@非常抱歉,请看我的最新答案。包含一些关于代码作用的描述可能也很有用。代码片段可能很方便,但我现在还不清楚它如何帮助回答最初的问题。
app.use('/', index);
app.use('/users', users);
app.use('/firstpage', firstpage);
app.use(express.static('routes');
// 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');
    });