Node.js res.send is not a function


I’m trying the following code but it’s giving me an error, “res.send is not a function”. Please help me.

Here’s the code:

var http = require('http');
var fs = require('fs');
var connect = require('connect');
var express = require('express');

var app = express();
app.get('/', function(res, req  ) {
        res.send('Hello World');

var server = app.listen(8888, function(){
    var host = server.address().address;
    var port = server.address().port;
    console.log("Example app listening at http://%s:%s", host, port);

The server is running fine and is connecting. The complete error that is being displayed is something like this:

TypeError: res.send is not a function
at c:\wamp\www\node\server.js:8:13
at Layer.handle [as handle_request] (c:\wamp\www\node\node_modules\express\lib\router\layer.js:95:5)
at next (c:\wamp\www\node\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (c:\wamp\www\node\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (c:\wamp\www\node\node_modules\express\lib\router\layer.js:95:5)
at c:\wamp\www\node\node_modules\express\lib\router\index.js:281:22
at Function.process_params (c:\wamp\www\node\node_modules\express\lib\router\index.js:335:12)
at next (c:\wamp\www\node\node_modules\express\lib\router\index.js:275:10)
at expressInit (c:\wamp\www\node\node_modules\express\lib\middleware\init.js:40:5)
at Layer.handle [as handle_request] (c:\wamp\www\node\node_modules\express\lib\router\layer.js:95:5)


According to the API reference, the first param always contain request req, then response res.

So change first param res to req:

app.get('/', function(req, res) {
    res.send("Rendering file")

It should fix it.

Answered By – Ovidiu Dolha

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published