意外的令牌)在行中不存在

我宁愿发布图片而不是代码本身来更好地展示这个问题,这些是我的文件的最后几行:

在这里输入图像说明

很明显,我的代码在第237行结束。 但是,当我从terminalinput“npm start”时,我总是得到:

在这里输入图像说明 看起来像语法错误是不存在的代码行。

我tripple检查文件,尝试引入一些语法错误,并检查它是否抓住了他们。 我确定这个文件npm试图使用。 怎么来的? 也许这是一些崇高的文字? 你们有没有经历过这样一个奇怪的问题?

编辑:

var express = require('express'), router = express.Router(), mongoose = require('mongoose'), //mongo connection bodyParser = require('body-parser'), //parses information from POST me thodOverride = require('method-override'); //used to manipulate POST router.use(bodyParser.urlencoded({ extended: true })) router.use(methodOverride(function(req, res){ if (req.body && typeof req.body === 'object' && '_method' in req.body) { // look in urlencoded POST bodies and delete it var method = req.body._method delete req.body._method return method } })) //build the REST operations at the base for blobs //this will be accessible from http://127.0.0.1:3000/blobs if the default route for / is left unchanged router.route('/') //GET all blobs .get(function(req, res, next) { //retrieve all blobs from Monogo mongoose.model('Blob').find({}, function (err, blobs) { if (err) { return console.error(err); } else { //respond to both HTML and JSON. JSON responses require 'Accept: application/json;' in the Request Header res.format({ //HTML response will render the index.jade file in the views/blobs folder. We are also setting "blobs" to be an accessible variable in our jade view html: function(){ res.render('blobs/index', { title: 'All my Blobs', "blobs" : blobs }); }, //JSON response will show all blobs in JSON format json: function(){ res.json(infophotos); } }); } }); }) //POST a new blob .post(function(req, res) { // Get values from POST request. These can be done through forms or REST calls. These rely on the "name" attributes for forms var name = req.body.name; var badge = req.body.badge; var dob = req.body.dob; var company = req.body.company; var isloved = req.body.isloved; //call the create function for our database mongoose.model('Blob').create({ name : name, badge : badge, dob : dob, isloved : isloved }, function (err, blob) { if (err) { res.send("There was a problem adding the information to the database."); } else { //Blob has been created console.log('POST creating new blob: ' + blob); res.format({ //HTML response will set the location and redirect back to the home page. You could also create a 'success' page if that's your thing html: function(){ // If it worked, set the header so the address bar doesn't still say /adduser res.location("blobs"); // And forward to success page res.redirect("/blobs"); }, //JSON response will show the newly created blob json: function(){ res.json(blob); } }); } }) }); /* GET New Blob page. */ router.get('/new', function(req, res) { res.render('blobs/new', { title: 'Add New Blob' }); }); // route middleware to validate :id router.param('id', function(req, res, next, id) { //console.log('validating ' + id + ' exists'); //find the ID in the Database mongoose.model('Blob').findById(id, function (err, blob) { //if it isn't found, we are going to repond with 404 if (err) { console.log(id + ' was not found'); res.status(404) var err = new Error('Not Found'); err.status = 404; res.format({ html: function(){ next(err); }, json: function(){ res.json({message : err.status + ' ' + err}); } }); router.route('/:id') .get(function(req, res) { mongoose.model('Blob').findById(req.id, function (err, blob) { if (err) { console.log('GET Error: There was a problem retrieving: ' + err); } else { console.log('GET Retrieving ID: ' + blob._id); var blobdob = blob.dob.toISOString(); blobdob = blobdob.substring(0, blobdob.indexOf('T')) res.format({ html: function(){ res.render('blobs/show', { "blobdob" : blobdob, "blob" : blob }); }, json: function(){ res.json(blob); } }); } }); }); //GET the individual blob by Mongo ID router.get('/:id/edit', function(req, res) { //search for the blob within Mongo mongoose.model('Blob').findById(req.id, function (err, blob) { if (err) { console.log('GET Error: There was a problem retrieving: ' + err); } else { //Return the blob console.log('GET Retrieving ID: ' + blob._id); //format the date properly for the value to show correctly in our edit form var blobdob = blob.dob.toISOString(); blobdob = blobdob.substring(0, blobdob.indexOf('T')) res.format({ //HTML response will render the 'edit.jade' template html: function(){ res.render('blobs/edit', { title: 'Blob' + blob._id, "blobdob" : blobdob, "blob" : blob }); }, //JSON response will return the JSON output json: function(){ res.json(blob); } }); } }); }); router.put('/:id/edit', function(req, res) { // Get our REST or form values. These rely on the "name" attributes var name = req.body.name; var badge = req.body.badge; var dob = req.body.dob; var company = req.body.company; var isloved = req.body.isloved; //find the document by ID mongoose.model('Blob').findById(req.id, function (err, blob) { //update it blob.update({ name : name, badge : badge, dob : dob, isloved : isloved }, function (err, blobID) { if (err) { res.send("There was a problem updating the information to the database: " + err); } else { //HTML responds by going back to the page or you can be fancy and create a new view that shows a success page. res.format({ html: function(){ res.redirect("/blobs/" + blob._id); }, //JSON responds showing the updated values json: function(){ res.json(blob); } }); } }) }); }); //DELETE a Blob by ID router.delete('/:id/edit', function (req, res){ //find blob by ID mongoose.model('Blob').findById(req.id, function (err, blob) { if (err) { return console.error(err); } else { //remove it from Mongo blob.remove(function (err, blob) { if (err) { return console.error(err); } else { //Returning success messages saying it was deleted console.log('DELETE removing ID: ' + blob._id); res.format({ //HTML returns us back to the main page, or you can create a success page html: function(){ res.redirect("/blobs"); }, //JSON returns the item with the message that is has been deleted json: function(){ res.json({message : 'deleted', item : blob }); } }); } }); } }); }); module.exports = router; 

你打开:

 // route middleware to validate :id router.param('id', function(req, res, next, id) { 

不要closures它。