2016-07-11 23 views
2

当我运行本地主机:服务器响应:3000服务器,我得到在控制台这些错误:无法加载Java脚本文件和bower_components /角/ angular.js

http://localhost:3000/bower_components/angular/angular.js无法加载资源与404状态(未找到)

http://localhost:3000/controller.js无法加载资源:服务器与404状态(未找到)

这是工作回答,如果我把angular.js脚本在索引中。而不是把它分开放在controller.js中,我不知道为什么当我使用脚本t时出现错误AGS。

目录图是这样的

-files 
    -bower_components 
    -angular 
    -index.html 
    -controller.js 
    -server.js 

这是index.html文件

<!DOCTYPE html> 
<html ng-app="App"> 
<head> 
<style> 
#list 
{ margin-left:320px; 
    font-size: 40px; 
    font-family:verdana; 
} 
button  
{ color:yellow;background-color:red;text-align:center;cursor:pointer; 
    -webkit-transition-duration: 0.4s; 
    transition-duration: 0.4s; 
    font-size:40px; 
    padding: 14px 32px; 
} 
button:hover 
{ background-color:peachpuff; 
    color:tomato; 
} 
</style> 
</head> 

<body style="background-color:cyan;"> 

<div ng-controller="Ctrl"> 

<h1 style="text-align:center;font-family:verdana;">To-Do LiSt</h1> 

<div style="margin-left:300px"> 
<input type="text" ng-model="task.name" style="background-color:black;color:white;font-size:40px;width:40%"> 
<button ng-click="addtask()">Add</button>&nbsp; 
<button ng-click="updatetask()">Update</button>&nbsp;<button ng-click="clearfield()">Clear</button> 
</div> 

<ul> 
<li id="list" ng-repeat="task in todolist"> 
{{task.name}} 
<button ng-click="deletetask(task._id)">Delete</button>&nbsp;&nbsp;<button ng-click="edittask(task._id)">Edit</button> 
</li> 
</ul> 

</div> 


</body> 

<script type="text/javascript" src="bower_components/angular/angular.js"></script> 
<script type="text/javascript" src="controller.js"></script> 

</html> 

这是server.js文件

var express = require('express'); 
var app = express(); 
var mongoose = require('mongoose'); 
var bodyParser = require('body-parser'); 
app.use(bodyParser.json()); 

mongoose.connect("mongodb://localhost/test"); 

var TodoSchema = new mongoose.Schema ({ 
name : {type: String, required: true} 
}); 

var TodoModel = mongoose.model('todolist',TodoSchema); 

app.get('/',function(req,res){ 

    res.sendFile("/index.html",{root:__dirname}); 
}); 

app.get('/todolist', function (req, res){ 
    TodoModel.find(function(err,tasks){ 
     res.json(tasks); 
    }); 
}); 

app.post('/todolist', function (req, res) { 

    TodoModel.create({name:req.body.name},function(err,task){ 
    res.send('created'); 
    }); 

}); 

app.delete('/todolist/:id', function (req, res) { 

TodoModel.remove({_id:req.params.id}, function (err) { 
    res.send(''); 
}); 
}); 

app.get('/todolist/:id', function (req, res) { 

    TodoModel.findById(req.params.id, function (err, task){ 
    res.json(task); 
    }); 
}); 

app.put('/todolist/:id', function (req, res) { 

    TodoModel.findByIdAndUpdate(req.params.id, 
    {name: req.body.name}, 
     function (err, task) { 

     res.json(task); 
    } 
); 
}); 

app.listen(3000); 
console.log("Server running on port 3000"); 

回答

1

在你server.js文件添加以下行并检查一次。

app.use(express.static(__dirname)); 

在节点js中,您必须设置注册表以访问相对路径。

+0

谢谢你....你能解释为什么我们需要这样做吗? ,我们正在从index.html提供路径,那么为什么我们在server.js中使用express.static – Robin

+0

接受答案,如果它可以帮助你好友..在节点js我们创建我们自己的服务器,所以它不能够在站立的相对路径,所以我们必须明确指定当前目录作为根目录,并基于该服务器解决相对路径.. –

+0

感谢队友....你可以建议网站,我可以加强我的基础nodejs? – Robin