2016-06-02 3 views
0

У меня есть сценарий, который снимает с моей веб-камеры. работает нормально, когда я запускаю локально или когда вижу в онлайн-сервере.Веб-камера не отображается, когда node.js работает

Но когда я запускаю html-файл с узла.js, он не отображает представление с моей веб-камеры.

как исправить это?

МОЙ СЕРВЕР В NODE:

// app.js 

var http = require('http'); 
var fs = require('fs'); 
sys = require('util'); 

var server = http.createServer(function(request, response){ 
    fs.readFile(__dirname + '/index.html', function(err, html){ 
    console.log("oi"); 
    response.writeHeader(200, {'Content-Type': 'text/html'}); 
    response.write(html); 
    response.end(); 
    }); 
}); 

server.listen(3000, function(){ 
    console.log('Executando Servidor HTTP'); 
}); 

МОЯ HTML:

<!DOCTYPE html> 
<html> 
<head> 
<title>Javascript Webcam Demo - <MyCodingTricks/></title> 
</head> 
<body> 

<h3>Demonstrates simple 320x240 capture &amp; display</h3> 


<div id="my_camera"></div> 

    <!-- A button for taking snaps --> 

<form> 
     <input type=button class="btn btn-success" value="Take Snapshot" onClick="take_snapshot()"> 
    </form> 


<div id="results" class="well">Your captured image will appear here...</div> 

    <!-- First, include the Webcam.js JavaScript Library --> 
    <script type="text/javascript" src="2/webcam.min.js"></script> 

    <!-- Configure a few settings and attach camera --> 
    <script language="JavaScript"> 
     Webcam.set({ 
      width: 320, 
      height: 240, 
      image_format: 'jpeg', 
      jpeg_quality: 90 
     }); 
     Webcam.attach('#my_camera'); 
     function take_snapshot() { 
      // take snapshot and get image data 
      Webcam.snap(function(data_uri) { 
       // display results in page 
       document.getElementById('results').innerHTML = 
        '<h2>Here is your image:</h2>' + 
        '<img src="'+data_uri+'"/>'; 

           Webcam.upload(data_uri, 'upload.php', function(code, text) { 
              // Upload complete! 
              // 'code' will be the HTTP response code from the server, e.g. 200 
              // 'text' will be the raw response content 
           }); 
      }); 
     } 
    </script> 
</body> 
</html> 
+0

От взгляда этого, ваш сервер не обслуживает '2/webcam.min.js'. –

ответ

0

Ваша программа, кажется, отправка содержание index.html для каждый запроса (для HTML, иконки, скрипты и т.д. .). Может быть, попробовать использовать express обслуживать статические файлы правильно:

var express = require('express'); 
var app = express(); 
app.use('/', express.static(__dirname)); 

app.listen(3000, function(){ 
    console.log('Executando Servidor HTTP'); 
}); 

Это даже проще, чем так, как вы хотите, чтобы написать это, потому что, чтобы сделать вашу работу скрипта вам придется вручную маршрутные запросы, основанные на request объекта, чтобы правильно отправить скрипты и различные активы, убедитесь, что для обработки типов MIME, как пути ../.. т.д.

Также вы можете переместить ваши статические файлы (HTML, CSS, JS) в другой каталог, как static и изменить app.js, как это :

var express = require('express'); 
var app = express(); 
app.use('/', express.static(__dirname + '/static')); 

app.listen(3000, function(){ 
    console.log('Executando Servidor HTTP'); 
}); 

так, что никто не сможет получить app.js код, перейдя по ссылке: http://localhost:3000/app.js

Смежные вопросы