I have an error with Heroku while i try to submit information on my app.
i'm following steps from the documentation : https://trailhead.salesforce.com/en/project/quickstart-heroku-connect/qs-heroku-connect-4
I run the server, i clic on submit button then on my term i get :
{ [Error: connect ETIMEDOUT 54.228.214.47:5432]
code: 'ETIMEDOUT',
errno: 'ETIMEDOUT',
syscall: 'connect',
address: '54.228.214.47',
port: 5432 }
/home/f.freitag/workspace/radiant-dusk-13720/server.js:17
conn.query(
TypeError: Cannot read property 'query' of null
at /home/f.freitag/workspace/radiant-dusk-13720/server.js:17:13
at /home/f.freitag/workspace/radiant-dusk-13720/node_modules/pg/lib/pool.js:82:27
at /home/f.freitag/workspace/radiant-dusk-13720/node_modules/pg/node_modules/generic-pool/lib/generic-pool.js:339:9
at /home/f.freitag/workspace/radiant-dusk-13720/node_modules/pg/lib/pool.js:31:28
at null.<anonymous> (/home/f.freitag/workspace/radiant-dusk-13720/node_modules/pg/lib/client.js:176:5)
at emitOne (events.js:77:13)
at emit (events.js:169:7)
at Socket.<anonymous> (/home/f.freitag/workspace/radiant-dusk-13720/node_modules/pg/lib/connection.js:59:10)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
npm ERR! Linux 2.6.32-504.12.2.el6.x86_64
npm ERR! argv "/usr/local/node/bin/node" "/usr/local/node/bin/npm" "start"
npm ERR! node v4.5.0
npm ERR! npm v2.15.9
npm ERR! code ELIFECYCLE
npm ERR! phone-change#0.0.0 start: `node server.js`
npm ERR! Exit status 1
npm ERR! Failed at the phone-change#0.0.0 start script 'node server.js'.
npm ERR! This is most likely a problem with the phone-change package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node server.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs phone-change
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls phone-change
npm ERR! There is likely additional logging output above.
I tried to see on google for this problem but i found nothing. Also, i'm not a nodeJS programmer, it's maybe simple.
I didn't change code from the git clone.
Here the code from server.js. I put a comment on the line error
var express = require('express');
var bodyParser = require('body-parser');
var pg = require('pg');
var app = express();
app.set('port', process.env.PORT || 5000);
app.use(express.static('public'));
app.use(bodyParser.json());
app.post('/update', function(req, res) {
pg.connect(process.env.DATABASE_URL, function (err, conn, done) {
if (err) console.log(err);
conn.query( //the error
'UPDATE salesforce.Contact SET Phone = $1, HomePhone = $1, MobilePhone = $1 WHERE LOWER(FirstName) = LOWER($2) AND LOWER(LastName) = LOWER($3) AND LOWER(Email) = LOWER($4)',
[req.body.phone.trim(), req.body.firstName.trim(), req.body.lastName.trim(), req.body.email.trim()],
function(err, result) {
done();
if (err) {
res.status(400).json({error: err.message});
}
else {
res.json(result);
}
});
}
else {
done();
res.json(result);
}
}
);
});
app.listen(app.get('port'), function () {
console.log('Express server listening on port ' + app.get('port'));
});
The problem is with the Heroku Connect mappings. Since you've added a new field in the query you also need to update the mappings which you did during the initial setup of Heroku Connect for Contact object.
Steps:
Go to Heroku Connect
Visit mappings section and select the mapping for Contact.
Click on Edit and select HomePhone and save it.
Once above steps are done rerun the application and now should see HomePhone field value populated as same as Phone.
Related
Console:
DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
server stared at port 7777
mongodb connection is successfull
events.js:200
throw er; // Unhandled 'error' event
^
ReferenceError: res is not defined
at D:\java script\React\hello\database\server.js:26:9
at D:\java script\React\hello\database\node_modules\mongoose\lib\model.js:4883:16
at D:\java script\React\hello\database\node_modules\mongoose\lib\model.js:4883:16
at D:\java script\React\hello\database\node_modules\mongoose\lib\helpers\promiseOrCallback.js:24:16
at D:\java script\React\hello\database\node_modules\mongoose\lib\model.js:4906:21
at D:\java script\React\hello\database\node_modules\mongoose\lib\query.js:4390:11
at D:\java script\React\hello\database\node_modules\kareem\index.js:135:16
at processTicksAndRejections (internal/process/task_queues.js:76:11)
Emitted 'error' event on Function instance at:
at D:\java script\React\hello\database\node_modules\mongoose\lib\model.js:4885:13
at D:\java scr
ipt\React\hello\database\node_modules\mongoose\lib\helpers\promiseOrCallback.js:24:16
[... lines matching original stack trace ...]
at processTicksAndRejections (internal/process/task_queues.js:76:11)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! Database#1.0.0 start: `node server.js "--port" "7777"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the Database#1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\HP\AppData\Roaming\npm-cache\_logs\2020-06-11T07_56_43_613Z-debug.log
My code is: He is my server.js file. In which I an trying to post data into mongodb.
const express =require("express")
const app=express();
const path=require('path');
const bodyParser=require('body-parser');
const cors =require('cors');
app.use(cors());
app.use(bodyParser.json());
const structRoute=express.Router();
let Struct=require('./query.model');
const mongooes=require('mongoose');
mongooes.connect('mongodb://127.0.0.1:27017/query',{ useNewUrlParser: true });
const connection=mongooes.connection;
connection.once("open",function(){
console.log("mongodb connection is successfull");
})
structRoute.route('/').get(function(){
Struct.find(function(err,query){
if(err){
console.log("error");
}
else{
res.json(query);
}
});
});
structRoute.route('/:id').get(function(req,res){
let id=req.params.id;
Struct.findById(id,function(err,query){
res.json(query);
});
});
structRoute.route('/add').post(function(req,res){
let query=new Struct(req.body);
query.save()
.then(query=>{
res.status(200).json({'query':"added successfully"})
})
.catch(
err=>{res.status(400).send("adding failed");}
);
});
app.use('/Struct',structRoute);
enter code here
app.listen(7777,()=>{
console.log("server stared at port 7777")
})
You forget add req and res to this function.
structRoute.route("/").get((req, res) => {
Struct.find((err, query) => {
if (err) {
console.log("error");
} else {
res.json(query);
}
});
});
i testing traffic on my node app in localhost using http.get(). i generate 10000 request on every 5 seconds.
the problem is when i run command npm start and after 20 to 30 seconds server crashed and with following error
events.js:136
throw er; // Unhandled 'error' event
^
Error: connect EADDRNOTAVAIL localhost:8000 - Local (localhost:0)
at Object._errnoException (util.js:999:13)
at _exceptionWithHostPort (util.js:1020:20)
at internalConnect (net.js:987:16)
at net.js:1087:9
at process._tickCallback (internal/process/next_tick.js:150:11)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! app#1.0.0 start: `node ./bin/run`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the app#1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/kd/.npm/_logs/2018-03-28T08_32_26_105Z-debug.log
i using 16.04.1-Ubuntu
here is my app.js
var rob = require('./test/rob.js');
for (var i = 0; i < 10000; i++) {
rob.init();
}
here is rob.js
var http = require('http');
module.exports = {
init : function(){
var pages = [
'dashboard',
'home',
'login',
'contact',
'support',
'about'
];
setInterval(function(){
try{
var pg = pages[Math.round(Math.random() * 5)];
http.get('http://localhost:8000/' + pg,
res => {
console.log('RES =>','SUCCSESS');
},
err => {
console.log('ERROR','ERROR');
});
}catch(err){
console.log('ER','ERR');
}
},5000);
}
}
here is run.js
var http = require('http');
var app = require('../app');
/* Create Server */
var port = 8000;
var host = '0.0.0.0';
var server = http.createServer(app);
io = module.exports = require('socket.io').listen(server, {
pingTimeout: 7000,
pingInterval: 10000
});
io.set("transports", ["xhr-polling","websocket","polling"]);
server.listen(port,host,function(){
log('server is running on ' + host +':'+port);
});
how to fix this problem ?
there are any other way to check traffic ?
I've started a new socket.io project with heroku. The server runs fine locally on windows. I start it with npm start but when I shut it down with ctrl + c I get this error in the console:
npm ERR! Windows_NT 6.3.9600
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\
node_modules\\npm\\bin\\npm-cli.js" "start"
npm ERR! node v6.11.4
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! test1#1.0.0 start: `node index.js`
npm ERR! Exit status 3221225786
npm ERR!
npm ERR! Failed at the test1#1.0.0 start script 'node index.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the test1 package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node index.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs test1
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls test1
npm ERR! There is likely additional logging output above.
I have searched for a solution but the very little I have been able to find has given no solution. I've tried updating npm and node, running npm install again, clearing the npm cache and probably some other actions I can't recall.
Here is my index.js
const express = require('express');
const socketIO = require('socket.io');
const path = require('path');
const PORT = process.env.PORT || 3000;
const server = express()
.use(express.static(__dirname + '/client'))
.listen(PORT, () => console.log(`Listening on ${ PORT }`));
const io = socketIO(server);
const pg = require('pg');
var connectionString = "postgres://jdirjtnfueksiw:823e80fbae9599f0d6797f82342d83bccf1caea764b8a1659356f3ee89r69f94#ec1-78-222-138-451.compute-1.amazonaws.com:5432/jf84jd75jgu26d5?ssl=true";
pg.connect(connectionString, function(err, client, done) {
if (err) {
throw err;
}
else {
console.log('Database connection test successful');
}
});
io.on('connection', function (socket) {
socket.emit('connected');
console.log('New connection from ' + socket.request.connection.remoteAddress);
socket.on('disconnect', function () {
console.log('Player left');
});
});
my package.json
{
"name": "test1",
"version": "1.0.0",
"engines": {
"node": "6.11.4"
},
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"pg": "6.x",
"express": "4.13.4",
"socket.io": "1.4.6"
},
"devDependencies": {},
"description": ""
}
Thank you for any help.
In the index.js can you try putting the following code:
process.on('SIGINT', () => {
process.exit();
});
I think the issue is that Ctrl+C kills the application but there is still some process running in the background. This will ensure that it is terminated.
Hope this helps!
Im doing migration to parse server. And until now everything worked well. But now I want to add google cloud storage file adapter and if I add this line to my code it stops working. Can you somebody tell me why.
var GCSAdapter = require('parse-server-gcs-adapter');
This is the log:
npm ERR! Linux 3.13.0-105-generic
npm ERR! argv "/app/.heroku/node/bin/node" "/app/.heroku/node/bin/npm" "start"
npm ERR! node v6.9.1
npm ERR! npm v3.10.8
npm ERR! code ELIFECYCLE
npm ERR! parse-server-example#1.4.0 start: `node index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the parse-server-example#1.4.0 start script 'node index.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the parse-server-example package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node index.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs parse-server-example
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls parse-server-example
npm ERR! There is likely additional logging output above.
2017-01-29T16:56:58.161879+00:00 app[web.1]:
npm ERR! Please include the following file with any support request:
npm ERR! /app/npm-debug.log
My index.js file:
// Example express application adding the parse-server module to expose Parse
// compatible API routes.
var express = require('express');
var ParseDashboard = require('parse-dashboard');
var ParseServer = require('parse-server').ParseServer;
var GCSAdapter = require('parse-server-gcs-adapter');
var path = require('path');
var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI;
if (!databaseUri) {
console.log('DATABASE_URI not specified, falling back to localhost.');
}
var api = new ParseServer({
databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: process.env.APP_ID || 'myAppId',
masterKey: process.env.MASTER_KEY || '', //Add your master key here. Keep it secret!
serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse', // Don't forget to change to https if needed
// liveQuery: {
// classNames: ["Posts", "Comments"] // List of classes to support for query subscriptions
// }
// filesAdapter: new GCSAdapter(
// "oval-proxy-117311",
// "./SymboloKey",
// "Symbolo",
// {directAccess: true}
// )
});
// Client-keys like the javascript key or the .NET key are not necessary with parse-server
// If you wish you require them, you can set them as options in the initialization above:
// javascriptKey, restAPIKey, dotNetKey, clientKey
const dashboard = new ParseDashboard( {
'allowInsecureHTTP': true,
'apps': [
{
'serverURL': process.env.SERVER_URL,
'appName': 'Symbolo',
'appId': process.env.APP_ID,
'masterKey': process.env.MASTER_KEY
}
],
'users': [
{
'user': 'public',
'pass': 'qwerty'
}
]
}, true )
var app = express();
// Serve static assets from the /public folder
app.use('/public', express.static(path.join(__dirname, '/public')));
// Serve the Parse API on the /parse URL prefix
var mountPath = process.env.PARSE_MOUNT || '/parse';
app.use(mountPath, api);
// serve the Parse Dashboard
app.use('/dashboard', dashboard)
// Parse Server plays nicely with the rest of your web routes
app.get('/', function(req, res) {
res.status(200).send('I dream of being a website. Please star the parse-server repo on GitHub!');
});
// There will be a test page available on the /test path of your server url
// Remove this before launching your app
app.get('/test', function(req, res) {
res.sendFile(path.join(__dirname, '/public/test.html'));
});
var port = process.env.PORT || 1337;
var httpServer = require('http').createServer(app);
httpServer.listen(port, function() {
console.log('parse-server-example running on port ' + port + '.');
});
// This will enable the Live Query real-time server
// ParseServer.createLiveQueryServer(httpServer);
If I run npm install:
Klemens-MBP-2:Cloud klemen$ npm install
npm WARN deprecated mongodb#2.2.10: Please upgrade to 2.2.19 or higher
> bcrypt#1.0.2 install /Users/klemen/Dev/Newcomm/Cloud/node_modules/bcrypt
> node-pre-gyp install --fallback-to-build
node-pre-gyp ERR! Tried to download(404): https://github.com/kelektiv/node.bcrypt.js/releases/download/v1.0.2/bcrypt_lib-v1.0.2-node-v51-darwin-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for bcrypt#1.0.2 and node#7.4.0 (node-v51 ABI) (falling back to source compile with node-gyp)
getting this error while running the command npm start
0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli 'start' ]
2 info using npm#3.3.12
3 info using node#v5.4.1
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle passport-local#0.0.0~prestart: passport-local#0.0.0
6 silly lifecycle passport-local#0.0.0~prestart: no script for prestart, continuing
7 info lifecycle passport-local#0.0.0~start: passport-local#0.0.0
8 verbose lifecycle passport-local#0.0.0~start: unsafe-perm in lifecycle true
9 verbose lifecycle passport-local#0.0.0~start: PATH: C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin;C:\Users\Rohil\Documents\ddbproject\passport-local\node_modules\.bin;C:\Users\Rohil\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\local\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Users\Rohil\bin;C:\oraclexe\app\oracle\product\11.2.0\server\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client;C:\Program Files\Intel\iCLS Client;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\WiFi\bin;C:\Program Files\Common Files\Intel\WirelessCommon;C:\Program Files\Java\jdk1.8.0_45\bin;C:\Program Files\nodejs;C:\mongodb\bin;C:\Users\Rohil\AppData\Local\Programs\Python\Python35-32;C:\Program Files\MongoDB\Server\3.2\bin;C:\Users\Rohil\AppData\Roaming\npm;C:\Program Files\MongoDB\Server\3.2\bin;C:\Program Files\Git\usr\bin\vendor_perl;C:\Program Files\Git\usr\bin\core_perl
10 verbose lifecycle passport-local#0.0.0~start: CWD: C:\Users\Rohil\Documents\ddbproject\passport-local
11 silly lifecycle passport-local#0.0.0~start: Args: [ '/d /s /c', 'node ./bin/www' ]
12 silly lifecycle passport-local#0.0.0~start: Returned: code: 1 signal: null
13 info lifecycle passport-local#0.0.0~start: Failed to exec start script
14 verbose stack Error: passport-local#0.0.0 start: `node ./bin/www`
14 verbose stack Exit status 1
14 verbose stack at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\lib\utils\lifecycle.js:232:16)
14 verbose stack at emitTwo (events.js:87:13)
14 verbose stack at EventEmitter.emit (events.js:172:7)
14 verbose stack at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\lib\utils\spawn.js:24:14)
14 verbose stack at emitTwo (events.js:87:13)
14 verbose stack at ChildProcess.emit (events.js:172:7)
14 verbose stack at maybeClose (internal/child_process.js:821:16)
14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
15 verbose pkgid passport-local#0.0.0
16 verbose cwd C:\Users\Rohil\Documents\ddbproject\passport-local
17 error Windows_NT 10.0.10586
18 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start"
19 error node v5.4.1
20 error npm v3.3.12
21 error code ELIFECYCLE
22 error passport-local#0.0.0 start: `node ./bin/www`
22 error Exit status 1
23 error Failed at the passport-local#0.0.0 start script 'node ./bin/www'.
23 error Make sure you have the latest version of node.js and npm installed.
23 error If you do, this is most likely a problem with the passport-local package,
23 error not with npm itself.
23 error Tell the author that this fails on your system:
23 error node ./bin/www
23 error You can get their info via:
23 error npm owner ls passport-local
23 error There is likely additional logging output above.
24 verbose exit [ 1, true ]
tried installing node-gyp
and also cleaning cache, node_modules and running a fresh npm start
even then, i get an error saying module.js:327: throw err;
cannot find module 'mongodb/node_modules/bson'
my package.json file:
{
"name": "passport-local",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "^1.13.2",
"chai": "~1.8.1",
"cookie-parser": "^1.3.5",
"express": "^4.13.1",
"express-session": "^1.10.1",
"jade": "^1.11.0",
"mocha": "~1.14.0",
"mongoose": "^3.8.22",
"morgan": "^1.6.1",
"passport": "^0.2.1",
"passport-local": "^1.0.0",
"passport-local-mongoose": "^1.0.0",
"should": "~2.1.0",
"serve-favicon": "^2.2.0",
"debug": "^2.1.1"
}
}
after running the command npm link mongodb and then running npm start, im getting a new error:
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version
events.js:141
throw er; // Unhandled 'error' event
^
Error: failed to connect to [localhost:27017]
at null.<anonymous> (C:\Users\Rohil\Documents\ddbproject\passport-local\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\server.js:556:25)
at emitThree (events.js:97:13)
at emit (events.js:175:7)
at null.<anonymous> (C:\Users\Rohil\Documents\ddbproject\passport-local\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\connection_pool.js:156:15)
at emitTwo (events.js:87:13)
at emit (events.js:172:7)
at Socket.<anonymous> (C:\Users\Rohil\Documents\ddbproject\passport-local\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\connection.js:534:10)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at emitErrorNT (net.js:1255:8)
at nextTickCallbackWith2Args (node.js:474:9)
at process._tickCallback (node.js:388:17)
npm ERR! Windows_NT 10.0.10586
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start"
npm ERR! node v5.4.1
npm ERR! npm v3.3.12
npm ERR! code ELIFECYCLE
npm ERR! passport-local#0.0.0 start: `node ./bin/www`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the passport-local#0.0.0 start script 'node ./bin/www'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the passport-local package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node ./bin/www
npm ERR! You can get their info via:
npm ERR! npm owner ls passport-local
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! C:\Users\Rohil\Documents\ddbproject\passport-local\npm-debug.log
the contents of the ./bin/www file are:
#!/usr/bin/env node
/**
* Module dependencies.
*/
var app = require('../app');
var debug = require('debug')('passport-local:server');
var http = require('http');
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
/**
* Normalize a port into a number, string, or false.
*/
function normalizePort(val) {
var port = parseInt(val, 10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false;
}
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
var bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port;
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
var addr = server.address();
var bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
debug('Listening on ' + bind);
}
This issue started after editing my app.js file:
// dependencies
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
var routes = require('./routes/index');
var users = require('./routes/users');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
// uncomment after placing your favicon in /public
//app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(require('express-session')({
secret: 'keyboard cat',
resave: false,
saveUninitialized: false
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
// passport config
var Account = require('./models/account');
passport.use(new LocalStrategy(Account.authenticate()));
passport.serializeUser(Account.serializeUser());
passport.deserializeUser(Account.deserializeUser());
// mongoose
mongoose.connect('mongodb://localhost/passport_local_mongoose_express4');
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handlers
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
module.exports = app;
also created a new file /models/account.js:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var passportLocalMongoose = require('passport-local-mongoose');
var Account = new Schema({
username: String,
password: String
});
Account.plugin(passportLocalMongoose);
module.exports = mongoose.model('Account', Account);
any errors in that?
mongo refuses to start too
$ mongo
MongoDB shell version: 3.2.1
connecting to: test
2016-02-20T23:34:10.083+0530 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, reason: errno:10061 No connection could be made because the target machine actively refused it.
2016-02-20T23:34:10.084+0530 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect#src/mongo/shell/mongo.js:224:14
#(connect):1:6
exception: connect failed
The mongoose error might be due to unstable version of mongoose, update "mongoose": "3.8" in package.json. (Followed by npm install) This might remove mongoose warning.
Check this link for
Failed to load c++ extension
Made sure these two packages are at these versions
"mongodb": "^2.1.16",
"mongoose": "^4.4.12"
And running the below commands with reference to here
npm install node-gyp -g
npm cache clean
rm -rf node_modules
npm install