【发布时间】:2016-11-08 17:20:32
【问题描述】:
所以按照我之前的一些问题,我的 JS 遇到了问题。我希望使用 Node、Socket.IO 和 JS 将它放在我的聊天系统的不同文件中。我曾经在索引文件中有 JS,但我希望它在它自己的文件中。
我知道您需要使用我已经完成的app.use(express.static('public));。我的 CSS 在目录 /css/styles.css (在公共文件夹中)的单独文件中工作,但我的 JS 不想在公共文件夹中工作。
我在 index.html 中的代码将其导入 <script type="text/javascipt" src="/js/java.js"></script>。不知道有没有错,如果有请指正。
任何关于为什么我的 JS 不工作的帮助都会很棒。谢谢你。
好的,所以添加更多信息,我根本没有收到任何客户端或服务器端的错误。这是我用于聊天系统的整个 JS 文件。
$('document').ready(function(){
var socket = io.connect();
var $messages = $('#messages');
var $m = $('#m');
var $submitForm = $('#submitForm');
var $userFormArea = $('#userFormArea');
var $userForm = $('#userForm');
var $username = $('#username');
var $errorText = $('#errorText');
var $messageFormArea = $('#messageFormArea');
$errorText.hide();
$messageFormArea.hide();
$submitForm.submit(function(e){
e.preventDefault();
socket.emit('chat message', $m.val());
$m.val('');
return false;
});
socket.on('sent message', function(data){
$messages.append('<li><strong>'+data.user+'</strong>: '+data.msg+'</li>');
});
socket.on('bad message', function(data){
$messages.append('<li><strong>'+data.user+'</strong>: Was trying to send invalid character!</li>');
});
$userForm.submit(function(e){
e.preventDefault();
if($username.val() === ''){
$errorText.show();
} else if ($username.val() === '<'){
$errorText.show();
} else if($username.val() === '>'){
$errorText.show();
} else {
$errorText.hide();
socket.emit('new user', $username.val(), function(data){
if(data){
$userFormArea.hide();
$messageFormArea.show();
}
});
}
$username.val('');
});
});
请记住,这曾经在 index.html 中。任何修复/解决方案都会很棒。谢谢!
【问题讨论】:
-
idk 如果这会解决,但您的
app.use(express.static('public));在“公共”一词后缺少' -
您遇到了什么错误?如果可能的话,您应该发布一个最小的完整示例,以便我们可以重现并更有效地调试。
-
你也拼错了
text/javascript。 -
公共文件夹中有 JavaScript 吗?
-
确保你的js文件在“public/js/”目录下。此外,@duskwuff 和 Taylor Foster 的建议可能会有所帮助。
标签: javascript jquery html css node.js