You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用wia报Class constructor Wia cannot be invoked without 'new'如何修复

错误原因
  • 你当前使用的wia SDK为较新版本,官方已将导出内容改为类构造函数,不再支持旧版本直接调用require('wia')(设备密钥)的工厂函数写法,因此不使用new关键字实例化就会抛出该报错。
修复方法
  1. 替换原代码第二行的wia初始化逻辑,原错误代码:
var wia = require('wia')('your-device-secret-key');
  1. 修改为以下写法即可,记得替换为你自己的设备密钥:
// 先引入Wia类
var Wia = require('wia');
// 用new关键字实例化,传入设备密钥
var wia = new Wia('your-device-secret-key');

其余代码不需要做任何修改,原有的wia.events.publish等调用逻辑都可以正常运行。

修改后完整代码
'use strict';

var Wia = require('wia');
var wia = new Wia('your-device-secret-key'); // 替换为你自己的设备密钥
var fs = require('fs');
var RaspiCam = require("raspicam");

// 初始化摄像头
var camera = new RaspiCam({
  mode: 'photo',
  output: __dirname + '/photo.jpg',
  encoding: 'jpg'
});

// 监听拍照启动事件
camera.on("start", function(){
  console.log("Starting to take photo.");
});

// 监听照片保存完成事件
camera.on("read", function(err, timestamp, filename){
  console.log("New photo created.", timestamp, filename);

  // 把照片发布到Wia
  wia.events.publish({
    name: 'photo',
    file:  fs.createReadStream(__dirname + '/' + filename)
  });
});

// 启动拍照
camera.start();

内容的提问来源于stack exchange,提问作者kwalala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 07:06:03