Express jeter jeton inattendu “tiret”
Je suis en train de livrer un fichier html statique qui utilise jquery et d'autres bibliothèques
et je veux savoir comment faire sa avec express.
Voici mon app.js code ( express serveur de fichier )
var express = require('express')
, routes = require('./routes')
var app = module.exports = express.createServer();
app.configure(function(){
app.set('views', __dirname + '/views');
app.use(express.static(__dirname + '/public'));
});
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack:
true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
app.register('.html', require('jade'));
app.get('/', function(req, res) {
res.render('index.html');
});
app.listen(3000);
et mon index.html est
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<link rel='stylesheet' type='text/css' href='theme.css' />
<link rel='stylesheet' type='text/css' href='fullcalendar.css' />
<link rel='stylesheet' type='text/css' href='fullcalendar.print.css'
media='print' />
<script type='text/javascript' src='jquery-ui-1.8.11.custom.min.js'></
script>
<script type='text/javascript' src='jquery-1.5.2.min.js'></script>
<script type='text/javascript' src='fullcalendar.min.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
$('#calendar').fullCalendar({
theme: true,
header: {
left: 'prev,next today',
center: 'title',
right: 'month'
},
editable: true,
events: { url : 'http://localhost:5555/'},
firstDay : 1,
weekends : true
});
});
</script>
<style type='text/css'>
body {
margin-top: 40px;
text-align: center;
font-size: 13px;
font-family: "Lucida
Grande",Helvetica,Arial,Verdana,sans-serif;
}
#calendar {
width: 900px;
margin: 0 auto;
}
</style>
</head>
<body>
<div id='calendar'></div>
</body>
</html>
et quand je lance mon serveur et mon navigateur, j'obtiens foll erreur
Error: D:\Workspace\nodejs\test\my-server/views/index.html:12
10| <script type='text/javascript'>
11|
> 12| $(document).ready(function() {
13|
14| $('#calendar').fullCalendar({
15| theme: true,
unexpected token "indent"
at Object.parseExpr (D:\Workspace\nodejs\test\my-server
\node_modules\jade\lib\parser.js:228:15)
at Object.parse (D:\Workspace\nodejs\test\my-server\node_modules
\jade\lib\parser.js:129:25)
at parse (D:\Workspace\nodejs\test\my-server\node_modules\jade\lib
\jade.js:101:62)
at Object.compile (D:\Workspace\nodejs\test\my-server\node_modules
\jade\lib\jade.js:148:9)
Je n'ai initiale googler, mais coudn't figure beaucoup..
peut somone savoir wht qui se passe.
Grâce
OriginalL'auteur JWhiz | 2012-01-14
Vous devez vous connecter pour publier un commentaire.
Le problème réside dans la connexion de
.html
avec le jade et le moteur de template. Jade exige la 'html' fichier ressemble à ceci:et dans votre cas, le jade et le moteur essaie d'analyser votre fichier HTML comme un modèle jade et des étranglements. Si vous voulez vraiment vous serveur un fichier HTML, vous pouvez prendre un coup d'oeil à cette réponse.
OriginalL'auteur topskip
pour n'importe qui qui va bien .
Vous êtes probablement à la suite de l'exemple ici .
et de l'événement si vos pas et toujours intéressés à servir des fichiers html . alors tout ce que vous devez faire est d'utiliser ejs .
si votre projet n'est pas à l'aide de jade modèles alors il suffit d'éditer vous
package.json
fichier à partir de ce :à ce
et alors votre bon d'aller avec les éléments suivants app.js configuration :
une chose est sûre l'ordre est important .
OriginalL'auteur Hussein Nazzal
res.render()
va traiter "index.html" en tant que modèle et essayer de la traiter par le moteur de template (jade.) Depuis votre fichier HTML est pas la forme d'un modèle (c'est juste un fichier HTML statique), vous recevez des erreurs.Si vous voulez tout simplement servir les fichiers statiques index.html, il suffit de le mettre dans le répertoire statique déclaré dans
app.use(express.static(__dirname + '/public'));
et y accéder directement. Les fichiers dans le répertoire statique ne sont pas traitées. Vous pouvez aussi avoir besoin de configurer l'Express middleware si vous essayez de faire quelque chose de plus complexe. Découvrez la fin de la section consacrée à un Middleware à http://expressjs.com/guide.html#middlewareVous pouvez également lire le contenu du fichier à l'aide de la
fs
module et servir (qui ressemble, est-ce que vous êtes en train d'essayer de le faire), mais qui introduit une surcharge inutile:OriginalL'auteur Jesse Fulton