未捕获的SyntaxError:意外的令牌<在nodejs中

时间:2015-12-05 13:00:01

标签: javascript node.js express

当我尝试提供客户端代码时,我收到以下屏幕截图错误。当我尝试运行node server / server.js

enter image description here

以下是我的server.js代码......

routes/index.js

get request内,router.get('*', function(req, res) { res.sendfile('./public/index.html'); }); 有以下内容。

 if (CGRectContainsPoint(scrollView.frame, tappedPoint)) {


                           NSLog(@"hello");


            }

5 个答案:

答案 0 :(得分:13)

通常情况是,当浏览器请求javascript文件时,服务器会发送一个html文件。这是由app.get('*'...之类的规则引起的。所以我们需要告诉服务器先发送静态文件,然后声明规则,如下所示:

// Declare static folder to be served. It contains the js, images, css, etc.
app.use(express.static('build'));

// Serve the index.html for all the other requests so that the
// router in the javascript app can render the necessary components
app.get('*',function(req,res){
  res.sendFile(path.join(__dirname+'/build/index.html'));
  //__dirname : It will resolve to your project folder.
});

答案 1 :(得分:2)

我的文件夹结构

node(folder)
     server.js           
     -client(f)
           -index.html
           -views(f)
           -js(f)
              -ctrl(f)
              -service(f) 
              -app.js
              -state.js

app.use(express.static('client'));
app.get('/index.html', function (req, res) {

  res.sendfile(_dirname+'/index.html');

});

从浏览器http://127.0.0.1:1956/index.html

调用此方法
var server = app.listen(1956, function (req, res) {
    var host = server.address().address
    var port = server.address().port
    console.log("app listening at", host, port)
});

它对我来说很好

答案 2 :(得分:1)

我认为这可能是由您的/public/index.html文件引起的。当您在index.html中包含js文件时,“src”属性存在一些问题。因此,它将返回“未找到”的html文件而不是实际的js文件。

答案 3 :(得分:0)

我猜部分问题出在您的router

routes/index.jsget请求更改为

router.get('/', function(req, res) {
    res.sendfile('./public/index.html');
});

您是否也使用gulp或类似内容管道化您的资产?如果没有,那么您如何为您的资产提供服务?

我建议您使用serve your assets statically或使用gulp

答案 4 :(得分:0)

我找到了解决方案,node js应用程序尝试编译公共文件夹中的js文件,这会出错; 您是这样定义公用文件夹的:

app.use(express.static(path.join(__dirname, 'public')));

尝试通过添加以下特定的虚拟文件夹名称来使用虚拟目录定义它:

app.use('/static',express.static(path.join(__dirname, 'public')));

这应该可行;