问题
'use strict';
var path = require('path');
var _ = require('lodash');
function requiredProcessEnv(name) {
if (!process.env[name]) {
throw new Error('You must set the ' + name + ' environment variable');
}
return process.env[name];
}
// All configurations will extend these options
// ============================================
var all = {
env: process.env.NODE_ENV,
// Root path of server
root: path.normalize(__dirname + '/../../..'),
// Server port
port: process.env.PORT || 9000,
// Server IP
ip: process.env.IP || '0.0.0.0',
// Should we populate the DB with sample data?
seedDB: false,
// Secret for session, you will want to change this and make it an environment variable
secrets: {
session: process.env.session || "wav"
},
// Export the config object based on the NODE_ENV
// ==============================================
module.exports = _.merge(
all,
require('./shared'),
require('./' + process.env.NODE_ENV + '.js') || {})};
When ran with my project (web app created with angular-fullstack), I receive the following error :
Line 39 col 6 Unexpected token: module.exports
^
line 39 col 7 Expected ':' and instead saw '.'.
line 42 col 54 Expected '}' to match '{' from line 15 and instead saw ';'.
Also, this code here also caused me some other problems in my project. I changed last few lines to :
var config = _.merge(...);
console.log(config);
module.exports = config;`
And I still get a syntax error: ` line 39 col 7 Expected ':' and instead saw 'config'.
line 39 col 14 Expected an identifier and instead saw '='.
line 39 col 16 Expected '}' to match '{' from line 15 and instead saw '_'.
line 39 col 27 Expected an identifier and instead saw ')'.
line 39 col 27 Expected an identifier and instead saw ')'.
line 39 col 28 Expected ')' and instead saw ';'.
line 40 col 15 'config' is not defined.
line 41 col 20 'config' is not defined.
回答1:
'module.export' is inside 'all' object, moving it outside should work:
'use strict';
var path = require('path');
var _ = require('lodash');
function requiredProcessEnv(name) {
if (!process.env[name]) {
throw new Error('You must set the ' + name + ' environment variable');
}
return process.env[name];
}
// All configurations will extend these options
// ============================================
var all = {
env: process.env.NODE_ENV,
// Root path of server
root: path.normalize(__dirname + '/../../..'),
// Server port
port: process.env.PORT || 9000,
// Server IP
ip: process.env.IP || '0.0.0.0',
// Should we populate the DB with sample data?
seedDB: false,
// Secret for session, you will want to change this and make it an environment variable
secrets: {
session: process.env.session || "wav"
}
};
// Export the config object based on the NODE_ENV
// ==============================================
module.exports = _.merge(
all,
require('./shared'),
require('./' + process.env.NODE_ENV + '.js') || {}
);
回答2:
Please learn to indent your code properly. Your error should then be crystal clear to find.
Coding Style Guide for node.js apps?
https://github.com/felixge/node-style-guide
来源:https://stackoverflow.com/questions/37144585/syntax-error-in-index-js