How to Solved Heroku Argument passed Error? - node.js

BSONTypeError: Argument passed in must be a string of 12 bytes or a string of 24 hex characters or an integer
at new BSONTypeError (C:\projects\assignment-11-server-site\node_modules\bson\lib\error.js:41:28)
at new ObjectId (C:\projects\assignment-11-server-site\node_modules\bson\lib\objectid.js:66:23)
at ObjectId (C:\projects\assignment-11-server-site\node_modules\bson\lib\objectid.js:26:20)
at C:\projects\assignment-11-server-site\index.js:41:37
at Layer.handle [as handle_request] (C:\projects\assignment-11-server-site\node_modules\express\lib\router\layer.js:95:5)
at next (C:\projects\assignment-11-server-site\node_modules\express\lib\router\route.js:144:13)
at Route.dispatch (C:\projects\assignment-11-server-site\node_modules\express\lib\router\route.js:114:3)
at Layer.handle [as handle_request] (C:\projects\assignment-11-server-site\node_modules\express\lib\router\layer.js:95:5)
at C:\projects\assignment-11-server-site\node_modules\express\lib\router\index.js:284:15
at param (C:\projects\assignment-11-server-site\node_modules\express\lib\router\index.js:365:14)

Related

Error while compiling ejs, the error is on local system

Can anyone help me with below error.
I am getting this error on local but on server its working fine.
Have tried changing include ../PATH/files.ejs to include('../PATH/files.ejs') this removes error but not able to print content on that file.
SyntaxError: Unexpected token . in /PATH/index.ejs while compiling ejs
If the above error is not helpful, you may want to try EJS-Lint:
https://github.com/RyanZim/EJS-Lint
Or, if you meant to create an async function, pass `async: true` as an option.
at new Function (<anonymous>)
at Template.compile (/PATH/node_modules/ejs/lib/ejs.js:626:12)
at Object.compile (/PATH/node_modules/ejs/lib/ejs.js:366:16)
at handleCache (/PATH/node_modules/ejs/lib/ejs.js:215:18)
at tryHandleCache (/PATH/node_modules/ejs/lib/ejs.js:254:16)
at View.exports.renderFile [as engine] (/PATH/node_modules/ejs/lib/ejs.js:459:10)
at View.render (/PATH/node_modules/express/lib/view.js:135:8)
at tryRender (/PATH/node_modules/express/lib/application.js:640:10)
at Function.render (/PATH/node_modules/express/lib/application.js:592:3)
at ServerResponse.render (/PATH/node_modules/express/lib/response.js:1012:7)
at ServerResponse.res.render (/PATH/node_modules/express-ejs-layouts/lib/express-layouts.js:77:18)
at res_data (/PATH/front_system.js:248:17)
at /PATH/front_system.js:218:13
at Layer.handle [as handle_request] (/PATH/node_modules/express/lib/router/layer.js:95:5)
at next (/PATH/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/PATH/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/PATH/node_modules/express/lib/router/layer.js:95:5)
at /PATH/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/PATH/node_modules/express/lib/router/index.js:335:12)
at next (/PATH/node_modules/express/lib/router/index.js:275:10)
at jsonParser (/PATH/node_modules/body-parser/lib/types/json.js:110:7)
at Layer.handle [as handle_request] (/PATH/node_modules/express/lib/router/layer.js:95:5)
Resolved by changing:
From
<% include ../PATH/files.ejs %>
To
<%- include('../PATH/files.ejs') %>

filebeat json logs to elasticsearch max size

I am sending the logs produced by my nodejs app using winston
This is my configuration filebeat.yml
filebeat.inputs:
- type: log
paths:
- /var/log/application/*.log
json.keys_under_root: true
output.elasticsearch:
hosts: ["elasticsearch.staging:9200"]
setup.kibana:
host: "kibana.staging:5601"
Logs are written in for example /var/log/application/app-bank.log
I have something like that
{"message":"Application started","level":"info","application":"app-bank","environment":"staging"}
{"message":"Header x-website-name not found","stack":"Error: Header x-website-name not found\n at context.httpApp.use (/usr/src/app/controller/index.js:30:39)\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:284:7\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:275:10)\n at context.httpApp.use (/usr/src/app/controller/index.js:25:9)\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:284:7\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:275:10)\n at session (/usr/src/app/node_modules/express-session/index.js:468:7)\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:284:7","level":"error","application":"app-bank","environment":"staging"}
The first log is received my elasticsearch, but not the second one, I can not see any log, the problem should be because of the stack key I do not know if it because of the format of the stack or the log is passing a certain size.
I fixed it adding
json.add_error_key: true

Parameter error with a script tag and alert

I am getting the following error showing up in my logger.
URIError: Failed to decode param '/%db<script>alert(539043);</script>/'
at decodeURIComponent (<anonymous>)
at decode_param (/usr/src/app/node_modules/express/lib/router/layer.js:172:12)
at Layer.match (/usr/src/app/node_modules/express/lib/router/layer.js:123:27)
at matchLayer (/usr/src/app/node_modules/express/lib/router/index.js:574:18)
at next (/usr/src/app/node_modules/express/lib/router/index.js:220:15)
at app.use (/usr/src/app/app.js:83:9)
at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13)
at /usr/src/app/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12)
I think this is someone trying to probe my site for some vulnerability. This occurs 2 times every week like clockwork.
Around the same time I get the following error too:
URIError: Failed to decode param '/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd'
at decodeURIComponent (<anonymous>)
at decode_param (/usr/src/app/node_modules/express/lib/router/layer.js:172:12)
at Layer.match (/usr/src/app/node_modules/express/lib/router/layer.js:123:27)
at matchLayer (/usr/src/app/node_modules/express/lib/router/index.js:574:18)
at next (/usr/src/app/node_modules/express/lib/router/index.js:220:15)
at app.use (/usr/src/app/app.js:83:9)
at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13)
at /usr/src/app/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12)
Is there some sort of way to prevent this? Should I be concerned about this? Is there a standard way of dealing with parameters that are not legitimate.

LESS files not getting compiled

Below is a snippet from my node.js file
I am trying to compile code from LESS into CSS.
Am I missing anything
app.use(lessMiddleware({
src: path.join(__dirname, '/public/stylesheets/styles', 'less'),
dest: path.join(__dirname, '/public/stylesheets/css'),
prefix : '/stylesheets',
}));
When I refresh my index.html, it throws me below error
TypeError: Arguments to path.join must be strings
at f (path.js:204:15)
at Object.filter (native)
at Object.exports.join (path.js:209:40)
at C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\less-middleware\lib\mi
ddleware.js:161:27
at Layer.handle [as handle_request] (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\n
ode_modules\express\lib\router\layer.js:95:5)
at trim_prefix (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\l
ib\router\index.js:312:13)
at C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\lib\router\ind
ex.js:280:7
at Function.process_params (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modul
es\express\lib\router\index.js:330:12)
at next (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\lib\rout
er\index.js:271:10)
at expressInit (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\l
ib\middleware\init.js:33:5)
TypeError: Arguments to path.join must be strings
at f (path.js:204:15)
at Object.filter (native)
at Object.exports.join (path.js:209:40)
at C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\less-middleware\lib\mi
ddleware.js:161:27
at Layer.handle [as handle_request] (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\n
ode_modules\express\lib\router\layer.js:95:5)
at trim_prefix (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\l
ib\router\index.js:312:13)
at C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\lib\router\ind
ex.js:280:7
at Function.process_params (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modul
es\express\lib\router\index.js:330:12)
at next (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\lib\rout
er\index.js:271:10)
at expressInit (C:\SrkOwnRepo\Hotaaal\HotelUI10892515\node_modules\express\l
ib\middleware\init.js:33:5)
Please provide a workaround or any other middleware.
The less-middleware function has a different interface than the one you showed in the code snippet.
It looks like this lessMiddleware(source, options), where source is a string and options is an object. And it breaks somewhere around here when it tries to to call path.join on source, in your case an object.
You can check out the documentation of the middleware for the accepted parameters in options.

ERR wrong number of arguments for 'hmset' command

I have the following code:
setOnOrder = (map) ->
console.log map
if _.isEmpty map
Promise.resolve()
else
hmsetPr "onorder.tmp", map
onOrder = (req, res, next) ->
console.log req.query
if req.query.syncStart
delPr "onorder.tmp"
.then -> sendOK(res)
.catch next
else if req.query.syncComplete
renamePr("onorder.tmp", "onorder")
.then -> sendOK(res)
.catch next
else
onOrderMap = _(req.body)
.groupBy( (r) -> r.sku )
.mapValues( (v) -> JSON.stringify(v) )
.value()
console.log "sync.onorder #{_.size(onOrderMap)} skus"
setOnOrder onOrderMap
.then -> sendOK(res)
.catch next
where map is like:
{ 'N52Z-LH1': '[{"doCref":"E3320","doAccount":"EVE001","sku":"N52Z-LH1","crDate":"20150703","crTime":"09:52:52","reqQty":150,"recQty":0,"reqDate":"20150703","recDate":"","cmpLtd":"F"}]',
'N52Z-LH2': '[{"doCref":"E3320","doAccount":"EVE001","sku":"N52Z-LH2","crDate":"20150703","crTime":"09:52:52","reqQty":150,"recQty":0,"reqDate":"20150703","recDate":"","cmpLtd":"F"}]',
'N52Z-LH3': '[{"doCref":"E3320","doAccount":"EVE001","sku":"N52Z-LH3","crDate":"20150703","crTime":"09:52:52","reqQty":150,"recQty":0,"reqDate":"20150703","recDate":"","cmpLtd":"F"}]',
'N54Z-BL1': '[{"doCref":"E3320","doAccount":"EVE001","sku":"N54Z-BL1","crDate":"20150703","crTime":"09:52:52","reqQty":100,"recQty":0,"reqDate":"20150703","recDate":"","cmpLtd":"F"}]',
'SA01-MGR1': '[{"doCref":"E3321","doAccount":"ARM001","sku":"SA01-MGR1","crDate":"20150703","crTime":"15:47:52","reqQty":160,"recQty":0,"reqDate":"20150703","recDate":"","cmpLtd":"F"}]',
'SA01-MGR2': '[{"doCref":"E3321","doAccount":"ARM001","sku":"SA01-MGR2","crDate":"20150703","crTime":"15:47:52","reqQty":320,"recQty":0,"reqDate":"20150703","recDate":"","cmpLtd":"F"}]',
'SA01-MGR3': '[{"doCref":"E3321","doAccount":"ARM001","sku":"SA01-MGR3","crDate":"20150703","crTime":"15:47:52","reqQty":320,"recQty":0,"reqDate":"20150703","recDate":"","cmpLtd":"F"}]',
'SA01-MGR4': '[{"doCref":"E3321","doAccount":"ARM001","sku":"SA01-MGR4","crDate":"20150703","crTime":"15:47:52","reqQty":240,"recQty":0,"reqDate":"20150703","recDate":"","cmpLtd":"F"}]',
'SA01-MGR5': '[{"doCref":"E3321","doAccount":"ARM001","sku":"SA01-MGR5","crDate":"20150703","crTime":"15:47:52","reqQty":80,"recQty":0,"reqDate":"20150703","recDate":"","cmpLtd":"F"}]',
'SA01-MPL3': '[{"doCref":"E3321","doAccount":"ARM001","sku":"SA01-MPL3","crDate":"20150703","crTime":"15:47:53","reqQty":240,"recQty":0,"reqDate":"20150703","recDate":"","cmpLtd":"F"}]',
'SA02-MNA1': '[{"doCref":"E3322","doAccount":"ARM001","sku":"SA02-MNA1","crDate":"20150703","crTime":"15:49:59","reqQty":200,"recQty":0,"reqDate":"20150703","recDate":"","cmpLtd":"F"}]',
'SA02-MNA2': '[{"doCref":"E3322","doAccount":"ARM001","sku":"SA02-MNA2","crDate":"20150703","crTime":"15:49:59","reqQty":300,"recQty":0,"reqDate":"20150703","recDate":"","cmpLtd":"F"}]',
'SA02-MNA3': '[{"doCref":"E3322","doAccount":"ARM001","sku":"SA02-MNA3","crDate":"20150703","crTime":"15:49:59","reqQty":200,"recQty":0,"reqDate":"20150703","recDate":"","cmpLtd":"F"}]',
'SA40-MBL5': '[{"doCref":"E3323","doAccount":"ARM001","sku":"SA40-MBL5","crDate":"20150703","crTime":"15:51:46","reqQty":25,"recQty":0,"reqDate":"20150703","recDate":"","cmpLtd":"F"}]',
'SA40-MNA5': '[{"doCref":"E3323","doAccount":"ARM001","sku":"SA40-MNA5","crDate":"20150703","crTime":"15:51:46","reqQty":25,"recQty":0,"reqDate":"20150703","recDate":"","cmpLtd":"F"}]' }
but everytime i try to set it in redis, I get the following traceback:
http://localhost:3000/sync/onorder Error: ERR wrong number of arguments for 'hmset' command
at JavascriptReplyParser._parseResult (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/redis/lib/parsers/javascript.js:43:16)
at JavascriptReplyParser.try_parsing (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/redis/lib/parsers/javascript.js:114:21)
at JavascriptReplyParser.run (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/redis/lib/parsers/javascript.js:126:22)
at JavascriptReplyParser.execute (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/redis/lib/parsers/javascript.js:107:10)
at Socket.<anonymous> (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/redis/index.js:131:27)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:146:16)
at Socket.Readable.push (_stream_readable.js:110:10)
at TCP.onread (net.js:523:20)
From previous event:
at ret (<anonymous>:8:21)
at setOnOrder (/home/khine/Sandboxes/node-blade-boiler-template/app/controllers/sync.coffee:277:5)
at onOrder (/home/khine/Sandboxes/node-blade-boiler-template/app/controllers/sync.coffee:295:5)
at Layer.handle [as handle_request] (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/layer.js:95:5)
at next (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/route.js:131:13)
at Route.dispatch (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/layer.js:95:5)
at /home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/index.js:277:22
at Function.process_params (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/index.js:330:12)
at next (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/index.js:271:10)
at Function.handle (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/index.js:176:3)
at router (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/index.js:46:12)
at Layer.handle [as handle_request] (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/index.js:312:13)
at /home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/index.js:280:7
at Function.process_params (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/index.js:330:12)
at next (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/index.js:271:10)
at urlencodedParser (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/body-parser/lib/types/urlencoded.js:81:44)
at Layer.handle [as handle_request] (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/index.js:312:13)
at /home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/index.js:280:7
at Function.process_params (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/index.js:330:12)
at next (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/express/lib/router/index.js:271:10)
at /home/khine/Sandboxes/node-blade-boiler-template/node_modules/body-parser/lib/read.js:129:5
at invokeCallback (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/body-parser/node_modules/raw-body/index.js:262:16)
at done (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/body-parser/node_modules/raw-body/index.js:251:7)
at Gunzip.onEnd (/home/khine/Sandboxes/node-blade-boiler-template/node_modules/body-parser/node_modules/raw-body/index.js:308:7)
at emitNone (events.js:72:20)
at Gunzip.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:905:12)
at doNTCallback2 (node.js:441:9)
at process._tickDomainCallback (node.js:396:17)
any advise on how to resolve this issue?
The issue was I had null values

Resources