Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Node.js cannot find basic functions

I just installed node.js(v7.1.0) and npm(3.10.9)with homebrew and I am trying to run a basic web server.

Edit* I now instantiate the dispatcher but still get the same error


var http = require('http');
var port = 8080;
var HttpDispatcher = require('httpdispatcher');
var http           = require('http');
var dispatcher     = new HttpDispatcher();

dispatcher.setStaticDirname(__dirname);
dispatcher.setStatic('');

dispatcher.onGet("/page1", function (req, res) {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Page One');
});

var server = http.createServer().listen(port);


server.on('request', function (req, res) {
    console.log('GOT');
    dispatcher.dispatch(req, res);  
});

when I run the command node server.js I get this error

dispatcher.setStaticDirname(__dirname);

TypeError: dispatcher.setStaticDirname is not a function
    at Object.<anonymous> (/Users/NodeJS/node_modules/server.js:5:12)
    at Module._compile (module.js:573:32)
    at Object.Module._extensions..js (module.js:582:10)
    at Module.load (module.js:490:32)
    at tryModuleLoad (module.js:449:12)
    at Function.Module._load (module.js:441:3)
    at Module.runMain (module.js:607:10)
    at run (bootstrap_node.js:420:7)
    at startup (bootstrap_node.js:139:9)
    at bootstrap_node.js:535:3

I get the same error for the dispatcher.onGet call.

like image 568
Brandon Bryant Avatar asked Dec 23 '22 23:12

Brandon Bryant


1 Answers

You are not using httpdispatcher correctly. You must instantiate the dispatcher before using it.

var HttpDispatcher = require('httpdispatcher');
var dispatcher     = new HttpDispatcher();
like image 59
Florent Avatar answered Jan 06 '23 05:01

Florent